漏洞探测过程中针对union盲注的实验

  • A+
所属分类:安全文章

漏洞探测过程中针对union盲注的实验

0x00 常规方式

case when 15 like '1%' then 0 else 2*1e308 end


0x01 前言

在一次日常的web安全检测时发现的一个sql注入,刚开始是直接扔sqlmap里面的,后面发现sqlmap对于这个站是怎么样都无法正常的检测注入

如下图:

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

而手工检测是可以注入但是人家返回的是你输入的内容,也就是不会有数据库的数据返回

漏洞探测过程中针对union盲注的实验

这就很头疼了,并且通过这个网站的一处输入与输出的地方,我还知道了,他会全局把
( )过滤为[ ]这就说明我们注入的时候是没有函数可以给我们使用的,也解释了为什么sqlmap会检测不出来。

如下图:
漏洞探测过程中针对union盲注的实验

好了前言介绍完了,剩下的就是与项目无关了,最后在实战时,发现可以使用 union + case when 来进行布尔盲注获取数据,也就是通过他,我的项目成功通过了,我们在本地模拟一下,因为在发肯定会漏,而且也不好理解


0x02 演示代码


在本地写了几行代码,模拟线上的情况。

<?php
$id = @$_GET['id'];
$dsn = "mysql:host=127.0.0.1; port=3306; dbname=test; charset=utf8";$user = 'root';$psw ='root';$pdo = new PDO($dsn, $user, $psw);$sql = 'select * from test';
if (!empty($id)) { $id = str_replace("(", "[", $id); $id = str_replace(")", "]", $id);} else { exit;}$sql .= ' where ' . 'id = ' . $id;echo 'sql:' . $sql;echo '<br/>';echo '<br/>';echo '<br/>';//进行查询数据库出问题则报具体错误$query = $pdo->query($sql);$res = @$query->fetch();if ($res) { // 这里写访问记录+1 但是我不想写,所以就直接把那个+1的流程去掉了 echo 'studio_one_hour_pageview_' . $id . '_53aa9d8bcf7749bdb0bbajksbdjkasbd';}

0x03 测试

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验


好了其实前面都是在凑字数的,后面发现我们可以使用这种方法来进行注入

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验


例如查库名:

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验


漏洞探测过程中针对union盲注的实验

漏洞探测过程中针对union盲注的实验

ctf系列文章整理

日志安全系列-安全日志

【干货】流量分析系列文章整理

【干货】超全的 渗透测试系列文章整理

【干货】持续性更新-内网渗透测试系列文章

【干货】android安全系列文章整理

横向渗透的常见方法

干货|应急响应实战checklist(附PDF版本下载)



扫描关注LemonSec

漏洞探测过程中针对union盲注的实验


漏洞探测过程中针对union盲注的实验


本文始发于微信公众号(LemonSec):漏洞探测过程中针对union盲注的实验

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: