# 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 标签和