SQL注入漏洞:
SQL注入原理:
- 程序员在处理程序和数据库交互时,使用字符串拼接的方式构造SQL语句。
- 未对用户可控参数进行足够的过滤,便将参数内容拼接到SQL语句中。
SQL注入漏洞的危害:
- 攻击者可以利用sql注入漏洞,可以获取数据库中的多种信息(例如:管理员后台账密),从而脱取数据库中的内容(脱库)。
- 在特别的情况下还可以修改数据内容,插入内容到数据库或者删除数据库中的内容。
- 如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用SQL注入漏洞读写文件,读取敏感文件或上传恶意文件,可以GetShell。
- 利用数据库提升权限。
SQL注入漏洞的判断:
1. id参数+1,-1判断是否有回显。
2. 添加单引号【’】,判断数据库是否有报错。
3. 根据报错信息判断输入的数据时字符型还是数字型。
4. 是否会回显报错信息。
5. 判断是否有布尔类型状态。
6. 判断是否有延时。
联合查询:
- 基础知识
【union select】
1) 保证两个select语句查询的虚拟表具有相同的列数。
2) 相同的列,具有相同的数据类型。
3) 跨库跨表查询。
2.判断列数
3.判断显示位
4.数据库的名字
5.查询所有的表名
6.获取字段名
7.获取字段内容
SQL注入案例:
1.
2.
经过逐一判断1-15列显示正常
16列开始报错
证明一共只有15列