目录
Web
Web_SINGIN
简简单单的文件上传
好玩的PHP
渗透的本质
简简单单的sql
re
baby_re
easy xor
Crypto
easy_rsa
Rsa2
Crypto_Singin
Pwn
pwn_Sing
Misc
easy_singin
Xjpg
流量分析1
流量分析3
流量分析2
Web
Web_SINGIN
1.使用右键检查,在js文件中发现base64编码
2.在hackbar中解码之后,得到flag
简简单单的文件上传
1.随便上传一个文件,点击上传,得到以下回显
2.根据回显,知道要修改文件的Content-Type为image/haha,于是想到抓包修改
3.上传成功之后,构造payload:172.16.17.6:7405/uploads/shell.php使用蚁剑连接
4.在蚁剑里面找到flag
好玩的PHP
1.先进行代码审计
<?php
$p1 = @$_GET['a'];
$p2 = @$_GET['b'];
$p3 = @$_GET['c'];
$p4 = @$_GET['d']; //从 GET 请求中获取参数 'a', 'b', 'c', 'd' 的值,并使用 @ 符号来抑制可能的错误消息(如未定义索引)。
if(isset($_GET['a']) && isset($_GET['b']) && isset($_GET['c']) && isset($_GET['d']))
//检查是否所有四个 GET 参数 'a', 'b', 'c', 'd' 都已设置(即存在于请求中)。
if($p1 != $p2 && md5($p1) == md5($p2)){
// 如果 $p1 和 $p2 的值不同,但它们的 MD5 哈希值相同,则执行以下操作。
if($p3 === file_get_contents($p4)){
// 如果 $p3 的值与 $p4 指定的文件内容相同,则执行以下操作
echo file_get_contents("flag.php"); //如果上述条件都满足,则输出 "flag.php" 文件的内容。
}
}
else{
die("请输入2个不同的值"); //如果 $p1 和 $p2 的值相同,或者它们的 MD5 哈希值不同,则输出错误信息并终止脚本执行。
}
highlight_file("index.php"); //论上述条件是否满足,都高亮显示 "index.php" 文件的内容。
2.根据代码,构造相应的url,先满足第一个if
3.满足第二个if,这里需要注意file_get_contents()函数的利用
,两个条件同时满足,得到flag
渗透的本质
1.通过观察附件robots.txt,发现其中有很多文件,包括:zip,rar,备份文件等
2.这里想到工具dirsearch中的指定字典扫描,于是用python dirsearch.py -u 网址 -e php,html -w 字典路径来扫描
3.查看这个可疑文件,得到以下代码,进行代码审计
<?php
if("admin"===$_GET[id]) {
echo("<p>not allowed!</p>");
exit();
}
//这段代码检查$_GET[id]是否严格等于字符串"admin"。如果是,则输出“not allowed!”并退出脚本。注意这里使用了严格等于运算符===,这意味着它还会比较变量的类型。
$_GET[id] = urldecode($_GET[id]); //此外,这行代码将$_GET['id']的值进行URL解码,并将解码后的值重新赋给$_GET['id']。
if($_GET[id] == "admin")
{
echo "<p>Access granted!</p>";
echo "<p>Flag: XXXXXXX </p>";
}//这段代码检查URL解码后的$_GET['id']是否等于字符串"admin"。如果是,则输出“Access granted!”和一个标志
?>
Can you anthenticate to this website?
资料:攻防世界-web高级-php2_%6e 解码-CSDN博客
4.通过抓包进行编码,这里进行了两次编码
原理:
$_GET[id] = urldecode($_GET[id]);
这句是进行一个url解码,在我们网页上输入网址位置也会进行一次url解码,代码中一句url解码 + 网页自带一句url解码,如果我没有算错的话应该是 2次 url解码,然后这个时候我们可以想到,url解码 + url解码 = admin,然后我们把admin进行编码两下
5.进行传参,得到flag
简简单单的sql
1.使用dirsearch扫描得到login.php,访问可得
2.密码使用admin,发现提示NO SQL,猜测是盲注
3.这里使用sqlmap来解题
自动爆数据库
sqlmap -u url --level 3 --dbs --batch
发现是UA头注入
爆数据表
sqlmap -u url --level 3 -D challenges --tables --batch
爆数据列
sqlmap -u url --level 3 -D challenges -T user_agents --columns --batch
爆字段,得到flag
sqlmap -u url --level 3 -D challenges -T user_agents -C user_agent --dump --batch
re
baby_re
1.判断出是32位,使用IDA查看,发现在主函数的Hex View-1中发现flag
2.整理可得flag
easy xor
1.先看是多少位的,再看是否加壳,发现是64位,无壳
2.
Crypto
easy_rsa
资料:CTF ——crypto ——RSA原理及各种题型总结_给定p,q,e,c,求解出明文m已知加密文件flag,enc和公钥pub.key,-CSDN博客
1.使用脚本跑一下,得到flag
Rsa2
1.先上网搜rsa中有关enc文件的知识点
资料:RSA解密-提供enc和pem文件类_flag.enc-CSDN博客
2.根据
Crypto_Singin
1.打开文件发现是Unicode字符
2.使用在线解码工具,得到Hex编码
3.解码之后,得到HTML编码
4.解码之后得到base64编码
5.得到flag
Pwn
pwn_Sing
1.直接使用nc,然后ls查看目录,最后cat flag.txt得到flag
Misc
easy_singin
1.根据提示,使用在线根据进行解码,得到flag
Xjpg
1.根据提示“你会使用win10刷新快捷键吗”,想到f5隐写
2.用F5-steganography进行解密
3.打开kali中的output.txt查看
4.pk头,把文件头改成zip文件的文件头
5.最后使用brainfuck解码
流量分析1
1.用wireshark进行分析,并且导出http对象
2.发现666.zip文件
3.发现很多文件
4.打开1.txt和2.txt文件,发现1中有png的头部,6中有尾部,这说明6个文件可以组成一张png
png的头部为89 50 4E 47 尾部为AE 42 60 82
5.16进制之后,放入010editer,发现有一张二维码
6.解码得到flag
流量分析3
1.下载得到一个rar文件,重命名,解压
2.打开flag文件,发现有加密
3.进行流量分析,发现很多USB,猜测是键盘流量分析
4.使用相应工具,得到flag
资料:usb流量分析的一个题目分享_usb流量分析工具-CSDN博客
流量分析2
1.使用wireshark工具打开,发现是sql注入盲注的流量分析
2.过滤包含flag的http,并且根据盲注的特点,是一个一个的寻找,从(1,1)(2,1)寻找,再对照ASCILL表,发现与flag有关
3.对比之后得到flag