这题真的弄了我好久,首页是这样的
稍微扫了一下,只有/login.php /register.php /admin/index.php
那么很明显是要进后台了
但是登陆框里username和password均有waf,如:|'|or|and|#|
等
但是注册那里却一点waf都没有,我就被这个坑了, 疯狂构造注册账号然后尝试登陆,后来去问了师傅,告诉我是group by with rollup
这个考点在swpuctf2019web6中出过,由于过滤了单引号,就试着转义一个单引号来逃逸
username=&password=||1 limit 0,1--+&question=1&token=123
提示安全提问未通过
那么就用group by令token=null
username=&password=||1 group by token with rollup having token is NULL--+&question=1
返回ok登陆后台
数据备份想到mysql任意文件读取,但是读/flag什么也没有,由于这是nginx的页面,尝试读
/usr/share/nginx/html/index.html,得到的是nginx初始化的页面,读/login.php又没有,就很懵
然后这里有个添加数据的页面
说是可以写shell,写完也没什么东西,先来看看Webshell大马这个分类,抓个包
/admin/page/allshell.php?name=Webshell%E5%A4%A7%E9%A9%AC
/admin/page/json.php?dt=alldata&name=Webshell%E5%A4%A7%E9%A9%AC&page=1&limit=15
点入2020-04-14.txt,会发现我们添加的"shell":1----123,也就是说我们添加的"shell"会被写入txt中
单独访问第二个url,会发现它会把当前分类下的文件全部列出来
根据这个包:
猜测分类后面会被拼接上/webshell/,所以用%00截断
改第二个url的分类名得到flag名