标签 网安竞赛 下的文章 - 网络编程与渗透技术笔记
首页
Search
1
Java编程小练习题目
22 阅读
2
Centos7.9系统如何换国内镜像源?
18 阅读
3
用Java编写九九乘法口诀表
17 阅读
4
全开源图床系统源码
17 阅读
5
PHP在线加密系统源码
17 阅读
Kali Linux
综合渗透注入
网站搭建与运维
编程开发
Java教程
Go教程
PHP教程
Python教程
MySQL
工具与脚本
网安竞赛
源码文件
漏洞百科
iAPP
登录
/
注册
找到
15
篇与
网安竞赛
相关的结果
2024-05-20
CTF网络安全大赛简单的web抓包题:HEADache
题目来源于:bugku 题目难度:简单 题目 描 述: > Wanna learn about some types of headache? > Let's dig right into it! 屏幕截图 2024-05-20 202545.png图片 下面是题目源代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Headache</title> <link rel="stylesheet" href="/static/bulma.min.css"> <style type="text/css"> img { width: 400px; height: auto; } </style> </head> <body> <section class="section"> <div class="container"> <h1 class="title is-primary"> HEADACHE </h1> <p class="subtitle"> In this challenge you'll discover some types of <strong class="is-primary">Headache</strong>! </p> <img src="/static/meme.png"> <p>Otherwise, if you want the flag just ask for it politely :D</p> </div> </section> </body> </html>下面我们开始解题: 这道题我们直接用“ BurpSuite ”抓包工具 直接在抓包到的页面添加请求头“ Wanna-Something:can-i-have-a-flag-please ”,就能获取到flag,完成题目了 QQ截图20240520202919.png图片
网安竞赛
# 网安竞赛
红帝
1年前
2
5
0
2024-05-19
CTF网络安全大赛web题目:字符?正则?
题目来源于:bugku 题目难度:难 题目描 述: 字符?正则? 题目htmnl源代码: <code><span style="color: #000000"> <span style="color: #0000BB"><?php <br />highlight_file</span><span style="color: #007700">(</span><span style="color: #DD0000">'2.php'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$key</span><span style="color: #007700">=</span><span style="color: #DD0000">'flag{********************************}'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$IM</span><span style="color: #007700">= </span><span style="color: #0000BB">preg_match</span><span style="color: #007700">(</span><span style="color: #DD0000">"/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i"</span><span style="color: #007700">, </span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">$_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">"id"</span><span style="color: #007700">]), </span><span style="color: #0000BB">$match</span><span style="color: #007700">);<br />if( </span><span style="color: #0000BB">$IM </span><span style="color: #007700">){ <br /> die(</span><span style="color: #DD0000">'key is: '</span><span style="color: #007700">.</span><span style="color: #0000BB">$key</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?></span> </span> </code>题目的php代码: <?php highlight_file('2.php'); $key='flag{********************************}'; $IM= preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match); if( $IM ){ die('key is: '.$key); } ?> 这段 PHP 代码试图执行几个任务,但其中有一些错误和不明确的正则表达式模式。我将逐一解释代码的各个部分,并指出其中的问题。 highlight_file('2.php'); 这行代码将尝试显示 2.php 文件的源代码。如果 2.php 文件存在并且服务器配置允许,那么你将看到它的内容。 $key='flag{********************************}'; 这里定义了一个变量 $key,其值是一个字符串,其中 "flag{" 后跟了一些星号(*),可能代表某种隐藏或占位的内容。 正则表达式和 preg_match 正则表达式 "/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i" 试图匹配某个特定的模式,但存在一些问题: * 它试图匹配字符串中包含多次出现的 `"key"`,但这可能不是预期的行为。 * `{4,7}` 通常用于指定前面的字符或组出现的次数范围,但在这里它被放置在了 `"key"` 后面,这可能不是预期的使用方式。 * `\/.\/` 似乎试图匹配一个斜杠(`\/`),后跟任何字符(`.`),再后跟另一个斜杠。但通常,在 PHP 字符串中,反斜杠(`\`)是一个转义字符,所以 `\/` 实际上只匹配一个斜杠(`/`)。 * `(.*key)` 捕获了以 `"key"` 结尾的任意字符序列,但前面的模式似乎并没有为此捕获组提供明确的上下文。 * `[a-z][[:punct:]]` 匹配一个小写字母后跟一个标点符号字符,但这也可能不是预期的行为。 * `i` 标志表示正则表达式应该不区分大小写,但在这个特定的正则表达式中,它可能不是必需的,因为所有的字符都是小写或已转义的。 preg_match 函数调用 preg_match 函数试图在 trim($_GET["id"]) 的结果中查找与正则表达式匹配的内容。如果找到匹配项,$IM 将被设置为 1(表示成功匹配),并且 $match 数组将包含匹配的结果。 条件语句 如果 $IM 为真(即找到了匹配项),则执行 die('key is: '.$key);,这将终止脚本并输出一个包含 $key 变量值的消息。但是,由于 $key 的值已经被硬编码为 'flag{********************************}',并且与正则表达式匹配的结果无关,因此这个消息将总是显示相同的 key 值,无论是否找到了匹配项。 总结: 这段代码可能试图通过某种方式验证或提取来自 URL 参数 id 的特定信息,但正则表达式可能不正确或不符合预期。 由于 $key 的值被硬编码为固定的字符串,因此无论是否找到匹配项,输出的 key 值都将相同。 如果你的目的是基于 URL 参数 id 的内容来动态地设置 $key 的值,那么你需要修改正则表达式和后续的逻辑以正确地提取和处理这些信息。 ctf.jpg图片 下面我们开始解答题目: 屏幕截图 2024-05-19 003017.png图片 直接Get传参输入“?id=key4444key5555555key:/3/155465keyk;”即可获取到flag
网安竞赛
# 网安竞赛
红帝
1年前
0
8
0
2024-05-17
Java中单双引号的区别
在Java中,双引号(")和单引号(')具有完全不同的用途,主要区别在于它们分别用于表示字符串(String)和字符(char)。 双引号(" "): - 双引号用于定义字符串。字符串是一个字符序列,可以是任何文本。 - 在Java中,字符串是String类的实例。当你使用双引号括起文本时,Java会自动为你创建一个String对象。 - 示例:String greeting = "Hello, Java!"; 单引号(' '): - 单引号用于定义单个字符,即char类型的字面量。 - 你可以使用单引号来存储一个单一的字符,如字母、数字、特殊符号等。 - 示例:char firstChar = 'H'; 注意以下几点: 如果你试图在单引号中放入多个字符,Java会报错,因为它期望单引号内只有一个字符。 如果你试图在双引号中放入一个字符而不是字符串,虽然这在语法上是允许的(因为单个字符也可以被视为字符串),但这可能会引发混淆或不必要的内存使用,因为字符串对象通常比字符对象占用更多的内存。 Java会自动处理字符串和字符之间的转换,但了解它们之间的区别对于避免常见的编程错误和误解是很重要的。 在Java中,字符串(一系列字符)必须使用双引号(")括起来,而单引号(')用于表示单个字符(char类型)。因此,在Java中输出字符串时,你必须使用双引号。 例如,以下代码是正确的,因为它使用了双引号来输出字符串: public class HelloWorld { public static void main(String[] args) { System.out.print("Hello, Java"); // 使用双引号输出字符串 } }而以下代码是不正确的,因为它试图使用单引号来输出一个字符串,但实际上它只表示了一个字符(在这种情况下是字符'H'): public class HelloWorld { public static void main(String[] args) { // 错误:单引号用于表示字符,而不是字符串 System.out.print('Hello, Java'); // 这会导致编译错误 } }如果你想输出单个字符,你可以使用单引号,但通常你不会用单引号来输出整个字符串。例如: public class HelloWorld { public static void main(String[] args) { System.out.print('H'); // 输出字符 'H' } }请注意,当你使用System.out.print()或System.out.println()方法时,它们期望接收的是一个String类型的参数,而不是char类型。因此,即使你尝试输出单个字符,Java也会自动将其转换为String(通过调用Character.toString()方法)。但最好还是明确地使用双引号来表示字符串。 java.jpg图片 总结来说,双引号用于定义字符串,而单引号用于定义单个字符。在Java中正确使用它们可以确保你的代码更加清晰、准确和高效。
Java教程
编程开发
# 网安竞赛
红帝
1年前
0
4
0
2024-05-17
CTF网络安全大赛web题目:baby lfi 2
题目来源于:bugku 题目难度:难 题目 描 述: What about making things a bit harder ? 题目源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous" /> <link rel="stylesheet" href="main.css" /> <title>Say Hello to our Gentelmen | LFI Warmups</title> </head> <body> <br /><br /> <div class="container"> <h1 id="h1">LFI Warmups - level 2</h1> <hr /> <h2 id="challenge">Hello I can speak 2 languages !</h2> <hr /> <u><b>Rules</b></u> <ul> <li>include some critical file <code> why not /etc/passwd</code></li> </ul> <hr /> <u><b>Challenge</b></u> <p>Please Select a language of your choice : en/fr </p> <p><b>HINT :</b> Approved Paths, there is a <code>languages </code> directory, I wont tell you what's stocked in it ? ;)</p> <hr /> <p> </p> </div> </body> </html>这个HTML页面似乎是一个Web挑战或练习的一部分,特别是关于本地文件包含(Local File Inclusion, LFI)的。在这个挑战中,用户被要求通过某种方式访问一个名为languages的目录中的文件,以选择英语(en)或法语(fr)的语言设置。 不过,这个HTML页面本身并没有包含任何执行LFI的代码。它只是一个前端界面,用于向用户展示挑战的规则和提示。 这里有一些关键点: 挑战规则:规则中提到要“include some critical file”,并给出了一个例子/etc/passwd。但在一个真正的Web应用中,直接包含像/etc/passwd这样的系统文件是不安全的,也是不可能的(除非存在严重的安全漏洞)。 挑战内容:用户被要求选择一种语言(en/fr)。这可能意味着后端代码会根据用户的选择来包含或读取languages目录下的某个文件(例如en.txt或fr.txt)。 HINT:提示说“Approved Paths, there is a languages directory”。这意味着用户应该尝试访问languages目录下的文件。 潜在的LFI风险:虽然这个HTML页面本身没有LFI风险,但后端代码(可能是PHP、Python等)可能会根据用户输入来动态包含文件。如果后端代码没有正确验证或转义用户输入,就可能导致LFI漏洞。 为了完成这个挑战,你可能需要: 访问后端代码(如果可用)以了解它是如何处理用户输入的。 尝试通过修改URL或发送POST请求来传递不同的语言参数(例如?lang=en或?lang=fr)。 使用开发者工具(如浏览器的Network或Console标签页)来查看和调试HTTP请求和响应。 根据后端代码的行为和响应来确定如何成功访问languages目录下的文件。 ctf.jpg图片 下面我们开始解题: 这个题目还是有点难度的,根据bugku的网友提供的解题思路 我们直接输入“ URL/?language=./languages/../../../../etc/passwd ” 这样就能成功获取到flag,题目就解决了
网安竞赛
# 网安竞赛
红帝
1年前
0
6
0
2024-05-17
CTF网络安全大赛简单web题目:baby lfi
题目来源于:bugku 题目难度:简单 题目 描 述: What about making things a bit harder ? 题目源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous" /> <link rel="stylesheet" href="main.css" /> <title>Say Hello to our Gentelmen | LFI Warmups</title> </head> <body> <br /><br /> <div class="container"> <h1 id="h1">LFI Warmups</h1> <hr /> <h2 id="challenge">Hello I can speak 2 languages !</h2> <hr /> <u><b>Rules</b></u> <ul> <li>include some critical file <code> why not /etc/passwd</code></li> </ul> <hr /> <u><b>Challenge</b></u> <pre>Please Select a language of your choice : en/fr </pre> <p><b>HINT :</b> use the <code>language parameter </code> :)</p> <hr /> <p> </p> </div> </body> </html>这个HTML页面是一个简单的网页,标题为“Say Hello to our Gentlemen | LFI Warmups”,并包含了一些基本的Bootstrap样式和自定义的main.css样式表。这个页面似乎是一个挑战或学习任务的起点,专注于一个名为“LFI Warmups”的主题。 以下是页面内容的详细分析: 标题和元信息: 页面标题为“Say Hello to our Gentlemen | LFI Warmups”。 <meta charset="UTF-8" /> 指定了文档使用的字符编码。 <meta name="viewport" ...> 标签确保页面在不同设备上都能正确显示。 样式链接: 页面链接到了Bootstrap 4.4.1的CSS文件以获取基本样式。 还链接到了一个名为main.css的自定义样式表,这可能包含页面的特定样式。 页面内容: <div class="container">:使用Bootstrap的container类来限制内容的宽度,并确保在不同设备上都有良好的布局。 页面包含两个主要的标题<h1>和<h2>,分别显示“LFI Warmups”和“Hello I can speak 2 languages !”。 有一条规则(<u><b>Rules</b></u>),指出需要包含一些“关键文件”,并给出了一个示例/etc/passwd(这暗示了可能与文件包含(LFI, Local File Inclusion)相关的挑战)。 挑战部分(<u><b>Challenge</b></u>)要求用户选择一种语言(英语或法语),并给出了一个提示,建议使用“language参数”。 可能的任务或挑战: 考虑到页面上的“LFI Warmups”和规则部分提到的文件包含(/etc/passwd),这个页面可能是一个用于教授或测试本地文件包含(LFI)漏洞的学习任务或挑战。 用户可能需要在URL或其他输入字段中添加特定的“language参数”来触发某些功能或访问特定的文件。 由于提到了两种语言(英语和法语),用户可能需要通过更改这个参数来查看不同语言的内容或触发不同的响应。 安全注意: 如果这是一个真实的、公开的网站,并且真的允许用户通过输入参数来访问服务器上的文件,那么这将是一个严重的安全风险。文件包含漏洞可以被恶意利用来访问敏感文件或执行恶意代码。 在学习或测试环境中使用这样的挑战时,请确保所有输入都经过了适当的验证和清理,以防止潜在的安全风险。 ctf.jpg图片 下面我们开始解题: 这个题目很简单 直接 “URL/?language=/etc/passwd” 即可获取到flag
网安竞赛
# 网安竞赛
红帝
1年前
0
5
0
1
2
3
下一页
易航博客