掌控安全Web安全微专业笔记 (13)

宽字节注入就是PHP发送请求到MySql时使用了语句
SET NAMES \'gbk\' 或是SET character_set_client =gbk 进行了一次编码,但是又由于一些不经意的字符集转换导致了宽字节注入

magic_quotes_gpc的作用:当PHP的传参中有特殊字符就会在前面加转义字符\'\',来做一定的过滤

为了绕过magic_quotes_gpc的,于是乎我们开始导入宽字节的概念

我们发现\的编码是%5c,然后我们会想到传参一个字符想办法凑成一个gbk字符,例如:‘運’字是%df%5c

SELECT * FROM users WHERE id=\'1\'\' LIMIT 0,1

这条语句因为\使我们无法去注入,那么我们是不是可以用%df吃到%5c,因为如果用GBK编码的话这个就是運,然后成功的让!。

SELECT * FROM users WHERE id=\'1�\'#\' LIMIT 0,1

�\ 实际上就是那个運字

四、宽字节SQL注入的靶场演示

第15题

image-20201014184308671

掌控安全Web安全微专业笔记

也可以

image-20201014185220678

第16题与15题类似,区别是("")

image-20201014190028820

17题可以这样做

image-20201014190421585

5-1Access注入 — Cookie注入 一、Cookie注入简介

什么是Cookie?
Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,你可以无需密码直接登陆管理员账号。

为什么Cookie和注入擦出了爱情的火花?(原理部分)
在动态脚本语言中存在超全局变量可以获取多种传参方式(基本上)
很多时候开发在开发的时候为了考虑到多种接受参数,在接受参数的时候都是用多种解释传参的方法
例如:
php中的$_REQUEST[] 可以获取POST|GET|COOKIE传参

注:php 5.4以上版本就不会接受Cookie传参了。
如果说开发用了$_REQUEST[]来接受参数?然后我们的POST和GET传参被Waf拦截了怎么办?
那么也许Waf没有对Cookie进行检测,我们尝试用Cookie进行传参,然后不就可以绕过检测机制!!

二、怎么修改Cookie

方法一:

抓取数据包直接修改数据包的值,添加一个Cookie字段在请求头里面

image-20201015210708488

image-20201015210713350

方法二:用Javascript来设置Cookie
我们可以尝试使用Javascript来设置Cookie
我们先按F12调出浏览器的开发者工具

image-20201015210727804

我们选择Console,打开浏览器的控制台,输入设置Js的语句就可以了
document.cookie="id="+escape("171")

通过浏览器Document.cookie来设置Cookie

Cookie名字为 id escape是一个编码函数,这个函数会进行一次URL编码

三、Cookie注入靶场讲解

最简单的联合查询,因为是Access数据库,我们没有系统自带表,而且Access数据库只有一个数据库,不用纠结库名。那么怎么获取Access数据库的表名和字段名,方法只有爆破

账号密码一般在盛行Access数据库的年代,都在admin表的username和password字段中

注意点: Cookie注入的时候一定要把GET类型的传参删除,不然优先执行GET类型传参。

如果不知道库名怎么办?
就一个库,没必要知道

如果不知道表名怎么办?
只能靠爆破了,and exists (select*from 表名) 如果页面正常,就是存在这个表
exists 这个函数就是检查子查询能否查询到数据,如果能会返回一个True

如果不知道字段怎么办?
下节课我们将教你偏移注入,来应对不知道字段名的情况

SQLmap如何跑Cookie注入
sqlmap -u ":8004/shownews.asp" --cookie "id=171" --level 2

5-2 Access注入-偏移注入 一、偏移注入使用场景

在SQL注入的时候会遇到一些无法查询列名的问题,比如无权限或者对方是Access数据库(没有information_schema库)

当你猜到表名无法猜到字段名的情况下,可以用Sqlmap爆破字段名称,或者使用偏移注入

二、偏移注入步骤

1.判断注入点

2.order by 判断字段数

3.判断表名

4.联合查询

5.获取表中列数(知道存在几列以及输出点)

6.开始偏移注入

三、偏移注入靶场讲解

1.靶场因为有一定的过滤,所以我们需要用COOKIE注入来进行注入

2.靶场是Access数据库,他默认没有系统自带表,所以我们只能通过猜来获取库名和表名

3.你看到的输出不一定是完整的输出,也许在源码里面会有更多的输出

1

:8004/shownews.asp
171 order by 10 页面正常
171 order by 11 页面异常

说明有shownews.asp页面查询的库有10个字段

2

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpdzz.html