Part1
跨库注入通过information_schema
Part2
跨库注入查找数据时要加上数据库名(数据库名.数据,例如 security.admin)
Part3
文件读写操作
<1>load_file():读取函数;
<2>into outfile() or into dumpfile():导出函数
例:
select load_file(‘c:/文件名’);
(不用\是担心转义字符产生歧义,如果一定要用的话建议\\)
select ‘s’ into outfile d:/www.txt
Part4
路径获取方式
报错显示;
遗留文件(phpinfo等,工具可以扫到);
漏洞报错;
平台配置文件;
爆破(利用字典对windows,linux等默认路径进行尝试)等
*:前三种比较常用,比较重要
Part5
魔术引号(magic_quotes_gpc)过滤
定义:
解决方法:
<1>编码(直接把路径Hex编码get提交,因为编码后不再用到被强制转义的符号),推荐小葵
<2>宽字节注入,推荐博客
插:addslashes()函数作用与魔术引号相同
Part6
相关防护手段:
即:
<1>魔术引号打开,或在php文件中利用addslashes(String)函数强制转义;
例:echo
s
t
r
.
"
T
h
i
s
i
s
n
o
t
s
a
f
e
i
n
a
d
a
t
a
b
a
s
e
q
u
e
r
y
.
<
b
r
>
"
;
e
c
h
o
a
d
d
s
l
a
s
h
e
s
(
str . " This is not safe in a database query.<br>"; echo addslashes(
str."Thisisnotsafeinadatabasequery.<br>";echoaddslashes(str) . " This is safe in a database query.";
<2>设置内置函数is_int()等对传入不合理参数进行防御;
<3>利用str_replace()将关键字替换(例如将select替换为selec来防止注入)以及利用php正则表达式防止利用大写绕过关键字替换;
<4>使用WAF防护软件
那么,怎么绕过?
注:
以上方法宗旨都是为了防止WAF防护软件对数据的正确提取,(打乱匹配规则,利用工具饱和性等)