04SQL注入基础和联合查询
一.SQL注入漏洞
1.SQL注入原理
(1)程序员在处理程序和数据库交互时,使用字符串拼接的方式构造SQL语句.
(2)未对用户可控参数进行足够的过滤,便将参数内容拼接到SQL语句中
2.SQL注入漏洞的危害
(1)攻击者可以利用SQL注入漏洞,可以获取数据库中的多种信息(例如:管理员后台账密),从而脱取数据库中的内容(脱库).
(2)在特别的情况下还可以修改数据库内容、插入内容到数据库或者删除数据库中的内容。
(3)如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用SQL注入漏洞读写文件,读取敏感文件或上传恶意文件,可以Getshell.
(4)利用数据库提升权限.
3.SQL注入漏洞的判断
(1)id参数+1、-1判断是否有回显?
?id=33
?id=34
?id=35
当变化id参数的值的时候,数据库中的内容回显在网页中。
经过变化id参数发现,只有在id在22、23、32-35范围内才能正常显示网页,所以认定数据库只存储了6页新闻内容。
(2)添加单引号[’],判断数据库是否有报错
?id=33
?id=33’出现报错,参数两边没有引号,输入数据是数字型的
(3)显示报错信息,考虑报错注入
(4)判断是否有布尔类型状态?
有布尔类型状态,有延时
4.利用联合查询获取cms 网站后台管理员帐密
【?id=33 order by 1】 正常
。。。。。。。。。。。。正常
【?id=33 order by 15】 正常
【?id=33 order by 16】 错误说明:程序中的SQL语句有15列
判断出3,11是显示位
可以获取到数据库的名称、所在文件夹以及版本信息
查询表名提示格式混乱,然后转码成16进制,然后解码
获取字段名
获取字段内容
在md5解码网站解码得到密码。