目录
1,cat (Django,cURL漏洞)
2,ics-05(XCTF 4th-CyberEarth)(文件包含 + preg_replace函数漏洞)
3,ics-06(爆破id)
4,lottery(.git文件泄露)
5,NewsCenter(sql注入)
6,mfv(.git文件泄露 + php审计+ 命令执行)
7,Training-WWW-Robots(robots协议)
8,NaNNaNNaNNaN-Batman(javascript代码审计)
9,upload(文件上传 + sql注入)
10,PHP2(phps源码泄露 + php代码审计)
11,FlatScience(robots协议 + sqlite注入)
12,unserialize3(php反序列化绕过__wakeup())
13,bug(漏洞挖掘 + 伪造本地IP + 文件上传漏洞 (黑名单过滤+文件头检测))
14,web2(php代码审计 + 逆向解密)
15,ics-04(sql注入 + 业务逻辑漏洞)
16,Triangle(javascript审计 + 汇编 + 逆向)
18,upload1(文件上传)
19,ics-07
20,i_got-id-200
21,Web_php_include(php://伪协议 + strstr()函数的绕过)
22,Web_php_unserialize(反序列化 之 绕过 __wakeup() 和 preg_match())
23, baby_web
24,php-rce(thinkphp5 远程命令执行漏洞)
25,Website
26,Web_python_template_injection(SSTI服务器模板注入)
27,Zhuaanxv
尝试着输入一个 域名 baidu.com 会发现 url中 会显示:get方式传递信息
以为是管道命令,在url中输入 127.0.0.1| ls 回显 invalid URL,看来不是管道命令
在url中尝试着输入 ?url=%70 执行后发现变成了?url=p 看来是后台程序将 url编码 解析并返回了
那要是 传递一个 %99呢(url编码使用 16进制,0~127个字符对应 00~7f 我们传递99 应该不能被解析)
果然,报错了,靠,巨长的报错信息:
正常的思路就是,复制下来,在文本编辑器中搜索 flag,ctf 等字符串
我搜索一下,没哟这两个字符,再来仔细审查报错信息,保存为html,打开看一下:
居然是 报的python的错,并且使用的是 Django的框架,正常的php界面出错不是应该报 Apache 或者 nignx的错吗???
应该是PHP通过cURL向django的站发送数据,那边处理完再将数据传回。
瞅一眼CURL:
关于 Django只需要知道,他是一个web服务框架
然后呢
然后呢
然后呢
既然用了 cURL,估计是cURL的漏洞,那肯定是找数据库的路径啊
ctrl + f 搜索 database ,找到了这个路径:
直接在URL 框中输入?url=@/opt/api/database.sqlite3 (为啥加@上面已经解释过了)
又得到 一个巨长的 信息,直接 ctrl + f 搜 ctf 直接出来了:
flag:WHCTF{yoooo_Such_A_G00D_@}
进去之后发现只有 设备维护中心 可以进去,
看到回显了url中的page的值,那先考虑 文件包含:
?page=php://filter/read=convert.base64-encode/resource=index.php
解密后得到源码,可以利用的是下面的这段代码:
Welcome My Admin !
";
$pattern = $_GET[pat];
$replacement = $_GET[rep];
$subject = $_GET[sub];
if (isset($pattern) && isset($replacement) && isset($subject)) {
preg_replace($pattern, $replacement, $subject);
}else{
die();
}
}
?>