# 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 如下

<script>alert(/xss/)</script>

<script>confirm('xss')</script>

<script>prompt('xss')</script>

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 标签和 < script > 标签。

在测试页面提交参数

伪协议

也可以使用 JavaScript:伪协议的方式构造 XSS

[javascript:alert()]

XSS 防御

使用 XSS Filter

​ XSS Filter 的作用是过滤用户提交的有害信息,从而达到防范 XSS 攻击的效果。

@输入过滤

输入验证

数据消毒

防御 DOM-XSS

​ 避免客户端文档重写,重定向或者其他敏感操作。

# 绕 waf

绕 WAF 可以从两个大的层面来考虑。一是通过 HTTP 协议层面,二是通过 WAF 对数据包的正则匹配层面。

发现主机连接最有用最通用的 Linux 命令。你可以使用”netstat -g” 查询该主机订阅的所有多播组(网络)

netstat -nap | grep port 将会显示使用该端口的应用程序的进程 id

netstat -a or netstat –all 将会显示包括 TCP 和 UDP 的所有连接

netstat –tcp or netstat –t 将会显示 TCP 连接

netstat –udp or netstat –u 将会显示 UDP 连接

netstat -g 将会显示该主机订阅的所有多播网络。

一、iptables 防火墙
1、基本操作

# 查看防火墙状态

service iptables status

# 停止防火墙

service iptables stop

# 启动防火墙

service iptables start

# 重启防火墙

service iptables restart

2、开启 80 端口

vim /etc/sysconfig/iptables
# 加入如下代码
- A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后重启防火墙

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Charmber 微信支付

微信支付

Charmber 支付宝

支付宝

Charmber 贝宝

贝宝