# SQL 注入
# 分类
SQL 注入根据不同的标准,有不同的分类,从数据类型分类的话,SQL 注入分为数字型和字符型。
根据注入手法分类,可以分为:
可联合查询注入 ----- 联合查询
使用 order by 1
order by 2
…
判断数据库有多少列数
再使用 [?id=3 union select 1,2,3,…]
报错型注入 ------ 报错查询
# 布尔型注入 ------ 布尔盲注
思路:布尔逻辑注入的思路是闭合 sql 语句,构造 or 和 and 逻辑语句,注释多余的代码。
原始语句:
select fir ,las from user where user_id='' |
SQL 注入语句解析:
select fir ,las from user where user_id=' ' or 1=1 ---' |
说明:
第一个’用于闭合前面的条件
or 1=1 为真的条件
–注释后面的所有语句。
# 基于时间延迟注入 ------ 延时注入
# 可多语句查询注入 ----- 堆叠查询
union 语句用于联合前面的 select 查询语句,合并查询更多的信息
一般通过错误和布尔注入确定注入点,便开始通过 union 语句获取有效信息。
猜测数据列数
'union select 1 --' | |
'union select 1,2 --' | |
'union select 1,2,3 --' |
…
sql 注入语句的解析:
select fir ,las from user where user_id='' union select 1,2 --'' |
获取当前数据库及用户信息
'union select version().database() --' |
'union select table_name,1 formINFORMATION_SCHEMA.tables --' // 查看所有库表名 |
根据注入点分类
get 数据
post 数据
http 数据
cookie 数据
# XSS 漏洞
XSS 漏洞的验证
我们可以利用一段简单的代码,验证和检测漏洞的存在,这样的代码叫做 PoC (Proof of Concept)
PoC 漏洞的验证与检测
EXP 漏洞的完整利用工具
shellcode 利用漏洞时,所执行的代码
payload 攻击载荷
sqlmap 攻击代码的模板
msf shellcode 类似,功能是建立与目前的连接
验证 XSS 漏洞存在的 PoC 如下
XSS 的分类
XSS 漏洞大概分为三种:反射型 XSS,存储型 XSS,DOM 型 XSS。
反射型 XSS
反射型 XSS 是非持久性,参数型的跨站脚本。反射型 XSS 的 JS 代码在 web 应用的参数中,如搜索框的反射型 XSS。
存储型 XSS
存储型 XSS 是持久性跨站脚本。持久性体现在 XSS 代码不是在某个参数中,而是写进数据库或者文件等可以永久保存数据的介质中。
存储型 XSS 通常发生在留言板等地方。我们在留言板位置留言将恶意代码写进数据库中。
DOM XSS
DOM XSS 比较特殊。owasp 关于 DOM 型的 XSS 的定义是基于 DOM 的 XSS 是一种 XSS 攻击,其中攻击的 payload 由于修改受害者浏览器页面的 DOM 树而执行。其特殊的地方就是 payload 在浏览器本地修改 DOM 树而执行,并不会上传到服务器上。
XSS 的构造
利用 [<>] 构造 HTML 标签和