攻防世界web题 难度等级:2
1.upload1
从页面可以看到这是文件上传然后getshell。直接上传shell看看
前端回显,f12查看源码
发现是前端过滤,修改后缀名抓包,再修改上传
上传成功,蚁剑连接http://61.147.171.105:49920/upload/1657597220.webshell.php
文件管理找到flag。
2.web2
审计代码,首先strrev()函数进行反转,substr()一个字符一个字符的截取,ord()转换ascll值+1再chr()转换为字符,最后拼接在一起,进行base_64编码,再反转,再str_rot13移位13位字母得到密文。逆转加密算法即可得到flag。
编辑程序,得到flag。
3.Web_php_include
这里考察文件包含漏洞,审计代码
可以看到用replace对php://字符进行了过滤,但是strstr()对大小写不敏感,因此我们可以用大小写绕过过率,用bp发包POST传输恶意代码执行系统命令。
再打开文件fl4gisisish3r3.php,找到flag
4.supersqli
sql注入题,首先检测注入点输入1’ --+可以正常运行
查看目前表的全部内容
猜解字段
尝试联合查询爆数据库名
这里对select等字符进行了过滤,先尝试堆叠注入。
堆叠注入可行,查看表名,可以看到有两个表
查看列
可以看到我们的目标在这个数字表中。由于大部分语句都被过滤了,可以使用handler语句来查询
具体handler使用可参考https://blog.csdn.net/m0_51607644/article/details/113928386
5.warmup
题目是一张图片,先查看源码,发现有个source.php的提示
访问得到源码
通过代码审计我们发现这是个文件包含,并有白名单,接下来就是白名单绕过了。先访问白名单hint.php可以看到提示
得到了flag的文件名,接下来就是让文件包含这个文件,得到flag。ffffllllaaaaggg不在白名单内我们首先要绕过白名单。
通过审计,发现他会截取第一次出现?前的字符,我们可以在包含文件前加上source.php?截取之后就是source.php符合白名单。但是输入?file=source.php?ffffllllaaaagggg之后发现还是没有看到问价,可能文件不在同一目录下,通过加…/来寻找文件所在目录
成功找到flag