SQL知识
一、网站结构: 攻击者 - web服务器 - 数据库服务器
二、数据库的结构: 数据库 - 表 - 列 - 数据
三、数据库基本语法: 工具:Navicat 基本语句: select from
联合查询:
union select(闭合引号)
order by (查询回显)
三个注释符:
#
--
/**/
特殊表:
information_schema.tables
information_schema.columns四、SQL注入:
输入无过滤,造成SQL注入漏洞;
分类:
get注入 post注入 cookie注入 header头注入
注入流程:
查询SQL注入点 判断SQL注入的类型(进行闭合) 爆列数 爆数据库名 爆表名 爆字段名 爆值
五、报错注入:
利用函数: extractvalue(); payload: and (extractvalue(1,concat(0x7e,(select user()),0x7e))) updatexml(); payload: updatexml(1,concat(0x7e,(select user()),0x7e),1)
六、宽字节注入:
利用汉字的url编码和字符的url编码的差别来进行注入。
七、sqlmap的使用:
python sqlmap.py -r xxx.txt (针对post传参) 相应的其他命令 --os-shell(获取权限)
八、布尔盲注: left()函数 limit()函数
九、延时盲注:
sleep()函数 left()函数执行正确,则执行sleep()函数 当其他方法无法判断的时候,可以使用sleep()函数,来判断是否有SQL注入点。
十、堆叠注入:
mysql_query()函数 查询一条语句 mysql_multi_query()函数,查询多条语句
十一、如何查询SQL注入漏洞:
查看以往存留的历史漏洞 是否是CMS框架
十二、SQL注入写shell:
要能够进行sql联合注入查询 mysql的配置secure-file-priv需要为空 确定目录的路径:
phpstudy: @@datadir找出www的目录 linux: /var/www/html 数据库报错