目录
一、漏洞扫描注意问题
误报和漏报
漏扫对目标系统的影响
1、Web 漏洞的漏洞验证
2、SQL
01- SQL注入原理与概念
SQL 注入的手法选择
SQL 注入漏洞的判断
*SQL 注入流程
DVWA中SQL注入探讨
技巧:
利用联合查询获取cas后台管理员账号密码
1. 基础知识
2. 判断列数
表名
获取字段内容
误报:原来漏洞不存在,但是报告漏洞存在。
漏报:原来漏洞存在,但是未报告。
误报和漏报都是客观存在的,使用的漏洞库里的脚本去匹配系统返回的信息。
解决方法:手工验证。
结构化查询语言(Structured Query Language ,SQL),是⼀种特殊的编程语言,用于数据库的标准数
据查询。作为关系型数据库系统的标准语言。
注:不过各种通⾏的数据库系统在其实践过程中都对SQL 规范做某些编改和扩充。所以,实际上不同数据库
系统之间的SQL 不能完全相互通⽤。
无论是哪种类型的扫描都会对目标系统造成伤害。(切记在扫描的是时候要取得同意)
核心思路:
由于Web 漏洞发生在Web 服务器上,整个Web 服务的通信是HTTP协议,所以,漏洞验证过程就是观察漏洞扫描工具发送的HTTP 请求包与响应包。请求包中包含漏扫工具提交请求的测试数据,主要关注:请求页面、请求参数、相应包中包含服务器的响应信息,也是漏洞存在的证明。
SQL注入(SQL injection)是一种常见的WEB 安全漏洞。攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
漏洞原理:
程序员在处理程序和数据交互时,使用字符串拼接的方式构造SQL语句。
未对用户可控参数进行足够的过滤,便将参数内容拼接到SQL语句中。
注入点可能存在的位置:
根据SQL注入漏洞原理,Web 应用获取用户输入的地方,只要带入数据库查询,都有存在SQL注入的可能。
这些地方通常包括:
......
漏洞危害:
☻ 攻击者可以利用SQL 注入漏洞,可以获取数据库中的多种信息(例:管理员账号、密码),从而脱取数据库中的内容(脱库)。
☻ 在特别的情况下还可以修改数据库内容、插入内容到数据库或者删除数据库的内容。
☻ 如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用SQL 注入漏洞读写文件,读取敏感文件或上传恶意文件。
☻ 利用数据库提权直接获取webshell 或者服务器权限。
SQL 注入漏洞的分类
根据不同的标准,SQL注入漏洞可以有不同的分类。
从数据类型分类,SQL注入分为两大基本类。
☻ 数字型
拼接到SQL 语句中的参数,是以数字出现的,即参数两边没得单双引号。
☻ 字符型
拼接到SQL 语句中的参数,是以文本出现的,即参数两边有单双引号。
☻ 注入手法:(SQLmap)
联合查询(Union Query SQL Injection)
报错注入(Error-Based SQL Injection)
布尔盲注()
延时注入()
堆叠查询()
据库中的内容是否回显在网页中
1. id 参数+1、-1 判断是否有回显?
?id=4
?id=3
?id=5
当变化 id 参数的值的时候,数据库中的内容回显在网页中。
2. 添加单引号【'】,判断数据库是否有报错
?id=5
?id=5'
3. 根据报错信息判断输入的数据是字符型还是数字型?
字符型就意味着参数左右两边有引号(单引号和双引号)
数字型就意味着数字参数左右两边没有引号。
关于引号的闭合
【?id=5' and 1=10000 --+】
4. 是否会回显报错信息?
考虑报错注入
5. 判断是否有布尔类型状态?
【?id=5' and 1=1 --+】
【?id=5' and 1=2 --+】
6. 判断是否有延时?
【?id=5' and sleep(5)--+】
数据库的名字--- 》》表的名字 ---》》字段(列)的名字---》》 字段内容
LOW 初级 代码审计
存在SQL注入漏洞
【union select】
☻ 保证两个 select 语句查询的虚拟表具有相同的列数。
☻【弱化】相同的列,具有相同的数据类型。
☻ 跨库跨表查询。
注 【?id=5' order by 1 --+】 正常
【?id=5' order by 2 --+】 正常
【?id=5' order by 3 --+】 错误
说明:程序中的 SQL 语句有 2 列
提示报错 说明只有15列
数据库的名字
?id=35 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,database(),12,13,14,15
注:cms_article,
cms_category,
cms_file,cms_friendlink,
cms_message,
cms_notice,
cms_page,cms_users
获取字段名
注 :userid, username, password