1、view_source:打开开发者工具F12就能看到flag
2、robots
(1)、使用目录扫描工具
- 工具:dirsearch
- 命令:python dirsearch.py -u http://61.147.171.105:55644/ -e *
(2)、看到下面有robots.txt文件,在URL后面输入,查看。
(3)、发现有个关于flag的文件,输入查看,得到flag
3、backup
(1)、访问网站提示备份文件后缀
- 后缀:.bak
(2)、访问index.php.bak会自动下载一个备份文件,使用记事本打开就可以看到flag
4、cookie
(1)、访问网站提示cookie,查看cookie值
(2)、发现是php文件,访问,提示看响应包
(3)、查看响应包,获得flag
5、disabled_button
(1)、题目提示,F12查看前端代码
(2)、发现有个属性,使提交按钮不能点,删除这个属性
(3)、点击按钮,获取flag
6、get_post
(1)、访问网站按照提示提交get请求
(2)、再按照提示post请求(可使用hackbar插件提交post请求)
(3)、获取flag
7、weak auth
(1)、访问网站,发现是登录页面。随便输入,点击登录。F12发现有个提示,需要字典
(2)、使用brup暴力破解,爆出登录名和密码
(3)、登录,得到flag
8、simple_php
(1)、访问网站有个提示,需要传入两个参数
(2)、第一个参数需要$a==0和$a为真同时成立,才能输出flag1
- $a为真成立:a需要为非空数组或非空字符串或非零数字
- 逻辑比较符==:仅比较值,字符串或数组或自动转化为数字
- 此题仅要保证第一个字符不是数字即可满足条件
- PHP 类型比较 | 菜鸟教程 (runoob.com)
(3)、第二个参数$b需要满足不是纯数字且大于1234
- is_numeric():检测变量是否为数字或数字字符串
(4)、两个参数依次输入,得到flag
9、Training-www-Robots
(1)、访问网站,发现有一段英文,翻译一下,有提示,访问robots.txt
(2)、发现有fl0g.txt文件,查看,得到flag
10、command_execution
(1)、看题目提示,应该是命令执行漏洞,可以尝试一下
(2)、使用连接符+执行命令,在各个文件里找类似flag的文件
11、xff_referer
(1)、题目提示,本题应该是伪造xff和referer
- X-Forward-For:HTTP请求头字段,用于服务器获取发送请求包的客户端的真实IP
- Referer:HTTP请求头字段,用来标识请求来源的URL
(2)、访问网站发现提示ip必须是123.123.123.123。
- 使用brup抓包,添加X-Forward-For:123.123.123.123,发送
- 也可使用hackbar插件添加更改
(3)、发送之后还需要来自https://www.google.com
- 使用brup抓包,更改Referer:https://www.google.com,发送,得到flag
- 也可使用hackbar插件更改
12、baby_web
(1)、题目提示,初始页面
默认页面:index.php、index.html、index.jsp、index.asp等
(2)、访问index.php,发现直接跳转到1.php文件
(3)、使用brup抓包,查看历史URL,在响应包里可以看到flag
13、PHP2
(1)、提示:你能认证这个网站吗,和题目是PHP2
- 网站主要组成:前端、后端、中间件、地址等
- php是服务器语言,当用户访问网站时,php脚本会执行,并进行显示
(2)、找php脚本文件,尝试index.php。发现不行,尝试访问脚本源代码
(3)、访问index.phps,发现代码显示不全,右键查看源代码。
(4)、代码审计,对admin进行两次URL编码
- 代码大体意思:传入的id值若等于admin,就输出not allowed。若不等于admin,就往下执行。然后经过URL解码。最后又做判断,传入的值等于admin就输出key。
- urldecode函数:解码通过URL编码的字符串
(5)、get传值,得到flag
14、ics-6
(1)、访问网站,没有提示,将每个都点一遍,发现报表中心有跳转页面。
(2)、在报表中心,找特殊点。URL上有id传参,可以尝试
(3)、使用brup暴力破解,尝试到1000或2000或3000进行爆破。按length排序,查看响应包,得到flag
15、unserialize3
(1)、网站上有代码,进行代码审计
- 代码大致意思:xctf类定义了flag属性,和__wakeup方法
__wakeup()
是PHP中的一个魔术方法,当使用unserialize()
函数对对象进行反序列化时自动调用。
(2)、当被反序列化的字符串对应的属性个数发生改变会使反序列化失效,使__wakeup()函数不能执行
- URL中输入:?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}
- 参考资料:攻防世界unserialize3题解
16、php_rce
(1)、访问网站,显示thinkphp5.0的图标,有可能是thinkphp框架漏洞
(2)、使用工具测试与利用
(3)、查看文件,得到flag
17、Web_php_include
(1)、看标题和代码,知道这是文件包含
- strstr():被搜索字符串在指定字符串中是否存在,如果是,返回字符串。不区分大小写
- str_replace():以其他字符替换字符串中的一些字符。区分大小写
(2)、参考链接:文件包含与PHP伪协议 - beiwo - 博客园 (cnblogs.com)
(3)、利用伪协议尝试获取文件
18、upload1
(1)、根据提示,知道是文件上传漏洞
(2)、发现是前端JS绕过,禁止前端JS
(3)、上传一句话木马,使用工具连接
(4)、查找文件,得到flag
- flag文件:根目录下,home目录下,上级目录下等
19、warmup
(1)、F12发现一个php文件,访问,发现一段代码
- 代码大致意思:检测用户请求的文件是否在白名单之内,如果在则包含该文件并输出,否则输出一张图片
- 代码中还提到另一个php文件,访问看看
(2)、访问hiint.php文件,有个提示
(3)、需要绕过过滤才能访问,文件包含+截断
- 参考链接:攻防世界 warmup 解题详析