因缺思汀的绕过分值: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

 

您可以考虑给博主来个小小的打赏以资鼓励,您的肯定将是我最大的动力。
作者:落花四月
出处:https://www.cnblogs.com/lxz-1263030049/
关于作者:潜心于网络安全学习。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

因缺思汀的绕过——实验吧相关推荐

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

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

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

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

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

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

  4. 渗透学习-靶场篇-安全狗的安装与绕过实验(后续还会更新)

    提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.安装安全狗 二.sql注入的绕过实验 判断注入点 判断列数量 union联合注入 拿库 ...

  5. 【文件包含漏洞-02】文件包含漏洞分类与原理及其空字符安全绕过实验

    文件包含漏洞 文件包含(file inclusion)漏洞,当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include ...

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

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

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

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

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

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

  9. CTSC2016APIO2016游记

    4.30 下午衡中放假,我们因为比赛的缘故提前到中午12:00放假 然后我爸爸说要来接我,直到下午两点多他才到,然后衡中宿舍的楼管阿姨死活不给我开门 莫名其妙的等到了三点多快四点的时候我才跟实验班的一 ...

最新文章

  1. UI5 table display visible row count logic calculation calculate
  2. c语言编程微信公众号图片直播,如何以图片的形式在微信公众号文章中添加小程序...
  3. dom选择方法的区别
  4. 开启防火墙并添加出入站规则
  5. JAVA-date(计算时间差)
  6. Mongo集群分片部署实践(4.2版本)
  7. linux创建raid5分区,linux RAID5 创建过程以及raid5扩容步骤(软raid)
  8. CustomValidator 的客户端验证
  9. 薅羊毛专业版助手,支持抖音/快手/京东/刷宝等50多个APP自动签到领红包,分享源码互相学习
  10. 解决space-evenly在部分浏览器不兼容的问题
  11. Turtle 画正方形螺旋线
  12. 云e办学习笔记(四)SpringSecurity学习(二)
  13. 零基础入门网络安全最直线距离的学习路线
  14. 大学计算机教育国外著名教材系列 数据结构,经典数据结构(Java语言版)(影印版)——大学计算机教育国外著名教材系列...
  15. 信息差副业小项目,高利润,新手日入500+
  16. 自学个JAVA编程有什么用_怎样自学java编程
  17. 系统集成项目管理工程师案例分析考点汇总(范围管理)
  18. 【工作经验分享】,大厂面试经验分享
  19. X230网卡驱动安装总不成功的问题
  20. 使用Python辅助ArcGIS出图-使用ArcToolbox

热门文章

  1. Docker基础(3)——基础网络模型
  2. redis——哈希(hash)
  3. Angular开发实践(五):深入解析变化监测
  4. ODBC的JAR包和PLSQL
  5. UID 修改 UID 锁死修复
  6. stripslashes和addslashes的使用方法
  7. nginx: [warn] conflicting server name localhost on 0.0.0.0:80, ignored
  8. 转载:Python正则表达式
  9. Android Camera 3D效果
  10. (libgdx学习)Continuous non continuous rendering