结合order by 解CTF某题

真tmd不容易

<?php
error_reporting(0);

if (!isset($_POST['uname']) || !isset($_POST['pwd'])) {
	echo '<form action="" method="post">'."<br/>";
	echo '<input name="uname" type="text"/>'."<br/>";
	echo '<input name="pwd" type="text"/>'."<br/>";
	echo '<input type="submit" />'."<br/>";
	echo '</form>'."<br/>";
	echo '<!--source: source.txt-->'."<br/>";
    die;
}

function AttackFilter($StrKey,$StrValue,$ArrReq){  
    if (is_array($StrValue)){
        $StrValue=implode($StrValue);
    }
    if (preg_match("/".$ArrReq."/is",$StrValue)==1){   
        print "水可载舟,亦可赛艇!";
        exit();
    }
}

$filter = "and|select|from|where|union|join|sleep|benchmark|,|\(|\)";
foreach($_POST as $key=>$value){ 
    AttackFilter($key,$value,$filter);
}

$con = mysql_connect("XXXXXX","XXXXXX","XXXXXX");
if (!$con){
	die('Could not connect: ' . mysql_error());
}
$db="XXXXXX";
mysql_select_db($db, $con);
$sql="SELECT * FROM interest WHERE uname = '{$_POST['uname']}'";
$query = mysql_query($sql); 
if (mysql_num_rows($query) == 1) { 
    $key = mysql_fetch_array($query);
    if($key['pwd'] == $_POST['pwd']) {
        print "CTF{XXXXXX}";
    }else{
        print "亦可赛艇!";
    }
}else{
	print "一颗赛艇!";
}
mysql_close($con);
?>

本来直接跳到最后看print "CTF{xxxx}";哪一行了,看到上面一位是弱类型。结果tmd才发现在16行就已经把数组给处理了,也就是很明白的说这不是弱类型。

后来想了想也只有注入了。可AttackFilter这个函数把该过滤的都过滤了。后来记得有个order by注入:http://www.cnblogs.com/xishaonian/p/7703486.html

等会儿再写 快下班了

转载于:https://www.cnblogs.com/xishaonian/p/7703530.html

CTF】关于SQL盲注的细节 目录: 0x01 CTF目中关于load_file()、char()、hex()、unhex()、like、过滤空格、过滤引号及相关问 0x02 某简单目中关于order by利用排序布尔盲注目及源码 0x03 某CTF,盲注+泄露+反序列化       0x01 CTF目中关于load_file()、char()、hex()、unhex()、like、过滤空格、过滤引... 阅读详情

相关推荐

CTF Web安全实战:从Base32码到SQL联合注入的完整通关

在Web安全领域,SQL注入是一种经典的攻击手法,它通过将恶意SQL代码插入到应用输入参数中,从而操纵后端数据库查询逻辑。其核心原理在于应用程序未对用户输入进行充分过滤和校验,导致攻击者可以绕过身份验证、窃取或篡改数据。这项技术的安全价值在于揭示了输入验证和参数化查询的重要性,是评估Web应用安全性的关键指标。典型的应用场景包括登录绕过、数据泄露和权限提升等。本文以一次典型的CTF过程为例,详细剖析了如何结合Base32码、MD5哈希破与联合查询注入(Union Injection)技术,逐步攻破一

weixin_33912246的博客 584

网络安全行业需要学历吗?需要考研吗?(1)

👉👈​。

2401_84239830的博客 1027

CTF实战析SQL注入:Union攻击与MD5绕过防御

SQL注入作为Web安全的核心漏洞之一,其本质是攻击者通过构造恶意输入,篡改后端数据库查询逻辑。其原理在于应用程序未对用户输入进行充分过滤,使得输入数据被误执行为SQL代码。这项技术的危害在于可直接导致数据泄露、篡改甚至服务器沦陷,在登录认证、数据查询等场景中尤为常见。本文聚焦于CTF竞赛中经典的登录绕过场景,深入剖析如何利用Union注入技术伪造查询结果集,并结合PHP中md5()函数处理数组的特性实现身份验证绕过。通过babysqli等实战案例,详从信息搜集、字段定位到最终Payload构造的完整攻击

weixin_29315091的博客 223

ctf】sql注入——order by的注入

order by的注入 这里我们先介绍一下逻辑运算符 逻辑运算符是按位进行运算的 首先将十进制转化为二进制,再进行按位运算; ORDER BY(1,2,3…) 语句 ORDER BY 语句用于对结果集进行排序。 ORDER BY 语句用于根据指定的列对结果集进行排序。 ORDER BY 语句默认按照升序对记录进行排序。 在不知道列名的情况可以用序号来指代相应的列。 asc:正序输出; desc:逆序输出; select * from user order by id desc 但有一点,order by

wlllllianqing的博客 623

安恒周周练西湖论剑版web美男子:巧用group by with rollup

安恒周周练西湖论剑版web美男子:巧用group by with rollup 2019年4月8日15:49:30 ###源码:### <?php include ‘global.php’; function AttackFilter($StrKey,$StrValue,$ArrReq){ if(is_array($StrValue)) { $S...

young9222的博客 2783

ctf-如来十三掌

ctf:1、菜狗为了打败菜猫,学了一套如来十三掌。2、流量telnet。3、1和0的故事。 4、base64÷4。5、SSCTF线上选举美男大赛开始了,泰迪拿着他的密码去密了

wrypot的博客 815

SQL注入进阶-order by注入

本文从order by原理简介开始,详细描述了order by注入原理以及多种注入姿势,包含order by union select注入、order by if()注入、order by sleep()注入、order by报错注入。

AkangBoy的博客 1万+

order by 字符串_CTF从入门到提升(六)order_by注入及例分享

位运算符我们都知道常规的注入,比如id=100这种类型可以查询出一篇文章,如果把100换成99+1它一样可以查出,因为它会做计算。order_by 去判断列数的时候,如果把id=4换成3+1去执行,出来的结果并没有做计算,所以这个运算效果没有意义。运算符如何运算呢?位运算是将每一个值转化成一个二进制字符串。按位的“and”或“or”,假设2 | 3,转成字符串就是3。ORDER BY常规去使用or...

weixin_39758494的博客 438

ctf引发对with rollup语句的思考

今日,追先人之迹,焉!抽取关键部分的源码,进行分析!");?可以看到做了一些waf,select被过滤了基于我的经验此时是难以进行注入的!有关sql部分源码die("连接失败,错误:" . $this->mysqli->connect_error);} //连接数据库并处理连接失败的情况//prepare($sql) 准备一个 SQL 查询//绑定查询参数//执行查询//绑定结果集// 获取查询结果//关闭查询结果。

2403_88003384的博客 929

sql(ctf实用篇

CTF比赛中,SQL注入目通常围绕几种经典且实用的注入类型设计。掌握这些类型和技巧后,结合靶场实践,能快速提升CTF中SQL注入的能力!

seronectf的博客 705

针对ORDER BY子句的SQL注入

CTF(Capture The Flag)竞赛中,针对ORDER BY子句的SQL注入是一种利用Web应用程序逻辑漏洞的技术,通常在应用程序对数据库查询结果排序时出现。当应用程序没有正确清理或参数化用户输入,并将其直接用于ORDER BY子句时,攻击者可以注入额外的SQL代码,从而控制查询结果的排序方式,甚至执行更复杂的SQL操作。

qq_69100706的博客 577

CTF从零到一 SQL注入-1

看到id=1 首先要判断是字符型还是数字型注入 根据书上方法判断数字型 id=3-2 返回页面与id=1的页面不同,说明不是数字型 加入单引号判断是否为字符型 id=1%27(这里'被转译成%27) 没有任何返回,说明有错误,存在注入。 接下来使用order by 判断表的列数。 id=1' order by 3 --+ (空格为%20 --+注释后面的语句) 显示正常 id=1' order by 4 --+ 说明一共有三列 接着我们使用un...

shirazawah的博客 2858

CTFSHOW WEB入门——sql注入

ctfshow 靶场 web入门 sql注入系列

Chur的博客 6680

BUUCTF [极客大挑战 2019]HardSQL

尝试万能密码被逮住 1’ or 1=1# 经过一系列尝试 order by,union select之类的都被过滤 网上别人的write参考了一下,这里是报错注入,用到xpath语法错误中extractvalue ^表异或,这里or and都被过滤了包括替换成&& ||我也试过也不行。 网上了了下报错注入,这目extractvalue里select后要加括号(比如下面database()外面加了括号),而正常情况下是不用的,猜测是空格被过滤的原因。 check.php?username

CrotZZ的博客 338

sql注入 order by

做个笔记,,,order by +表字段名 +【降序(desc)或默认升序】或者order by +表列数(也即字段)+【降序(desc)或默认升序】

weixin_42321419的博客 6201

玩得一手好注入之order by排序篇

看了之前Gr36_前辈在先知上的议,其中有提到排序注入,这个在最近经常遇到这样的问,所以先总结下order by 排序注入的知识。                             0×00 背景 看了之前Gr36_前辈在先知上的议,其中有提到排序注入,这个在最近经常遇到这样的问,所以先总结下order by 排序注入的知识。    0×01 环境信息 测试环境:操作系统ubunt...

weixin_34107955的博客 1157
上一篇: 利用order by 进行盲注
下一篇: 隐写术总结以及案例分享
aiquan9342
博客等级 码龄10年 18粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值