![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
CTF题目(web)
文章平均质量分 68
本人在网上做的CTF题中关于web的wp
Kevin_xiao~
菜鸡一个,Kevin_xiao.top
展开
-
[RoarCTF 2019]Easy Java
[RoarCTF 2019]Easy Java转载 2022-11-21 23:14:59 · 228 阅读 · 1 评论 -
[SUCTF 2019]Pythonginx
[SUCTF 2019]Pythonginx原创 2022-11-21 22:04:48 · 683 阅读 · 0 评论 -
[SWPU2019]Web1 (bypass information_schema,无列名注入)
打开环境,是个登录框:注册账号,登录后,有个广告发布,随便输入后查看详情后会回显:一下子就会想到是xss,于是我试了一下,果然还真存在xss:但是后来才知道没用,是个SQL题,注入点在标题那:按照步骤来,发现or,#都被过滤,空格会被消除,空格简单,用/**/就能绕过,但order by和information_schema都不能用,那咋判断字段数,不会要用union select一个个试吧(那这个题可能要搞傻),其实还可以用group by:1'/**/group..原创 2021-09-26 22:24:12 · 328 阅读 · 0 评论 -
EasyCleanup(session文件包含&条件竞争)
打开就是原码<?phpif(!isset($_GET['mode'])){ highlight_file(__file__);}else if($_GET['mode'] == "eval"){ $shell = $_GET['shell'] ?? 'phpinfo();'; if(strlen($shell) > 15 | filter($shell) | checkNums($shell)) exit("hacker"); eval($shell...转载 2021-09-26 11:49:50 · 989 阅读 · 1 评论 -
CTFshow web10
打开环境,是登录页面:点击取消,自动下载源码文件index.phps:<?php $flag=""; function replaceSpecialChar($strParam){ $regex = "/(select|from|where|join|sleep|and|\s|union|,)/i"; return preg_replace($regex,"",$strParam);//将上面字符串全替换为空 .原创 2021-09-22 17:07:42 · 883 阅读 · 0 评论 -
[极客大挑战 2019]RCE ME
打开环境,得到源码:<?phperror_reporting(0);if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long.");原创 2021-09-09 17:35:47 · 1092 阅读 · 0 评论 -
[GWCTF 2019]枯燥的抽奖
打开环境,让我们猜号,还要猜中全部20位才能得flag??!!看一下前端源码,看到个check.php:访问一下果然有东西:<?php#这不是抽奖程序的源代码!不许看!header("Content-Type: text/html;charset=utf-8");//防止页面乱码session_start();//创建新会话或者重用现有会话if(!isset($_SESSION['seed'])){$_SESSION['seed']=rand(0,999999999).原创 2021-08-20 18:03:45 · 732 阅读 · 0 评论 -
[BSidesCF 2019]Kookie
打开环境,显示:提示中让用admin登录,且有账户cookie,我们就可以猜测到和cookie有关,所以抓个包:发现没有cookie,那应该就是要我们手动添加了,应该是添加:Cookie: username=admin就得到了答案,还有种方法就是在浏览器的application中的cookie中添加cookie值,刷新得答案:...原创 2021-08-19 18:24:17 · 97 阅读 · 0 评论 -
[MRCTF2020]套娃
打开环境,啥都没发现:F12看到一些源码:<!--//1st$query = $_SERVER['QUERY_STRING']; if( substr_count($query, '_') !== 0 || substr_count($query, '%5f') != 0 ){ die('Y0u are So cutE!');} if($_GET['b_u_p_t'] !== '23333' && preg_match('/^23333$/', $_.原创 2021-08-05 19:20:13 · 673 阅读 · 2 评论 -
[NCTF2019]True XML cookbook
打开环境,看到熟悉的页面,和前面的[NCTF2019]Fake XML cookbook页面一样,应该也是XXE漏洞,这里再介绍一下XXE漏洞:XXE(XML External Entity Injection)全称为XML外部实体注入。XML是什么?XML指可扩展标记语言(EXtensible Markup Language),其设计宗旨是传输数据,而不是显示数据,用来结构化、存储以及传输信息,它没有预定义的标签。XML 和 HTML 之间的差异是什么?设计目的不同:XML 被设计用来传输原创 2021-08-04 13:25:36 · 2531 阅读 · 0 评论 -
[BJDCTF2020]Cookie is so stable
打开环境,除了主页面有两个页面,flag.php和hint.php。flag.php是一个输入框:在hint.php的源代码中发现:让我们看看cookies,那就随便输入看下cookies:修改值随便尝试下,发现不是SQL注入也不是xss,那这时就想到可能是模板注入。验证方式是输入{{7*7}},如果显示49,说明是Twig;如果显示7777777说明是jinja2,...原创 2021-08-03 19:30:03 · 131 阅读 · 0 评论 -
[GYCTF2020]FlaskApp
打开环境,是一个用flask写的base64加密解密的工具:既然是flask,就应该和SSTI注入有关,我们试试加密{{7*7}},得到e3s3Kjd9fQ==,再把它拿去解密,得到no no no !!说明应该有什么过滤,我们再试试{{7+7}},得到14,说明存在SSTI注入。再来试试命令执行,用{{system('ls')}},还是显示no no no!我们并不知道具体过滤了些什么@app.route('/decode',methods=['POST','GET'])def d..原创 2021-08-03 18:57:57 · 447 阅读 · 0 评论 -
[BJDCTF2020]EasySearch
打开环境,是个登录框:随便输入后弹窗显示错误:SQL注入也没有什么发现,那就用dirsearch扫描一下,发现了index.php.swp,访问得到源码:<?php ob_start(); function get_hash(){ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-'; $random = $chars[mt_rand(0,..原创 2021-08-02 18:43:08 · 262 阅读 · 0 评论 -
[CISCN2019 华东南赛区]Web11
打开环境:发现Build With Smarty !说明应该是与ssti模板注入有关。发现xff,还有右上角的Current IP:139.205.239.33,就尝试伪造一下IP:成功伪造,那就看看xff这个地方有无ssti注入漏洞:说明存在ssti注入漏洞,且为twig类型,我们试试能不能命令执行:成功执行了,那就简单了,当前目录下有apicssindex.phpsmartytemplates_cxffxff分别读取:X-Fo...原创 2021-07-30 18:44:57 · 235 阅读 · 0 评论 -
[MRCTF2020]Ezpop
打开环境,得到源码:Welcome to index.php<?php//flag is in flag.php//WTF IS THIS?//Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95//And Crack It!class Modifier { protected $var原创 2021-07-30 17:54:17 · 275 阅读 · 0 评论 -
[NPUCTF2020]ReadlezPHP
打开环境,没有发现,最后在源码中找到:点击跳转得到源码:<?php#error_reporting(0);class HelloPhp{ public $a; public $b; public function __construct(){ $this->a = "Y-m-d h:i:s"; $this->b = "date"; } public function __destruct(){ .原创 2021-07-28 11:16:17 · 504 阅读 · 0 评论 -
[极客大挑战 2019]FinalSQL
打开环境,看题目就知道是个SQL题,有个登录框,上面还有5个选项:依次点击一下:这是我们注意到上面的参数值在随之变化:他说在下一个,我们就改成id=6看看:说明注入点应该是在id这个位置,我们输入:id=6'显示:Error!说明存在SQL注入,接着:id=6'or 1=1#显示:你可别被我逮住了,臭弟弟,说明存在过滤,那过滤了哪些呢?我们来试一下,发现过滤了空格,等号,or,and,union,select这些都过滤得差不多了,...原创 2021-07-27 17:58:18 · 1605 阅读 · 1 评论 -
[MRCTF2020]PYWebsite
打开环境,是要让你购买flag,点击buy it now,出现了一个二维码:肯定不是真的给钱买,但抱着好奇的思想我还是扫了一下:就知道是这样,那我们就看一下源码,发现了一段代码感觉有用: function enc(code){ hash = hex_md5(code); return hash; } function validate(){ var code = document.getElementById("vcode..原创 2021-07-27 10:35:17 · 293 阅读 · 0 评论 -
[网鼎杯 2020 朱雀组]Nmap
打开环境,是nmap的网页版:看一下源码:直接访问不行,说明要通过其他方式读取,看到Nmap就想到和先前的online tools有点相似,先随便输入一个IP:可以得到回显结果,猜测是命令执行,尝试使用|分隔地址与命令:127.0.0.1 | ls可以看到|被\转义说明和[BUUCTF 2018] Online Tool一样肯定经过了escapeshellarg()函数和escapeshellcmd()函数的处理,前面[BUUCTF 2018] Online Tool的wp里...原创 2021-07-26 20:35:38 · 706 阅读 · 0 评论 -
[0CTF 2016]piapiapia
打开环境,是个登陆页面:一开始以为是SQL注入,结果尝试了很久都没成功,在源码中也没发现,那就用dirsearch扫描一下,得到一个www.zip,里面有几个文件:register.php:<?php require_once('class.php'); if($_POST['username'] && $_POST['password']) { $username = $_POST['username']; $password = $_PO...原创 2021-07-25 20:49:39 · 437 阅读 · 6 评论 -
[WUSTCTF2020]朴实无华
打开环境,显示:标题为繁体,意思是:人间极乐bot看到bot就应该想到robots.txt,访问robots.txt:看到有个fAke_f1agggg.php,一看就不是答案,但还是要访问:这明显不是,再看看源码,看看响应头:有个fl4g.php,再访问:得到这样一个页面,是繁体,整理翻译后,其中的代码为:<?phpheader('Content-type:text/html;charset=utf-8');error_reporti...原创 2021-07-24 17:38:40 · 335 阅读 · 0 评论 -
[CISCN 2019 初赛]Love Math
打开环境,直接给出了源码,进行审计:<?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){ show_source(__FILE__);}else{ //例子 c=20-1 $content = $_GET['c']; if (strlen($content) >= 80) { die("太长了不会算"); } $blackli原创 2021-07-23 19:40:05 · 109 阅读 · 0 评论 -
[安洵杯 2019]easy_serialize_php
打开环境,点击source_code,得到源码:<?php$function = @$_GET['f'];//GET方式传值function filter($img){ $filter_arr = array('php','flag','php5','php4','fl1g');//创建数组 $filter = '/'.implode('|',$filter_arr).'/i';//implode函数将数组中的值以‘|’分隔。 return preg_replac原创 2021-07-22 15:11:25 · 240 阅读 · 2 评论 -
[ASIS 2019]Unicorn shop
打开环境,是个商店,让你买东西,输入商品序号和价钱:有四种马可以买,我们购买试试,前3种在购买时都显示:只有最后一种不是,但当输入足够的价钱时显示:意思是只能输入一个字符,但我们只输入个位数时会显示:钱不够!!!说明就需要一个大于1337的字符,可以用别的语言来表示数字,Unicode字符中的一些特殊字符来代替输入的价格。https://www.compart.com/en/unicode/这个网站有很全的Unicode字符在其中找寻指代thousand...原创 2021-07-16 14:37:14 · 101 阅读 · 0 评论 -
[BSidesCF 2020]Had a bad day
打开环境,有两个选择按钮,woofers和meowers,随意点击一个,出现了一张小狗的图片,但url中有GET传参: index.php?category=woofers,怀疑是文件包含,访问一下woofers.php看存不存在:访问成功,再尝试修改category的值(后面加几个字母之类的):有include报错,这都说明是文件包含。那就可以尝试用php伪协议读取源码:url/index.php?category=php://filter/read=convert.ba..原创 2021-07-11 12:23:21 · 116 阅读 · 2 评论 -
[NCTF2019]Fake XML cookbook
打开环境,看到登录框,一开始以为是sql注入,后来才知道是xml外部实体注入(XXE)。原创 2021-06-18 17:23:10 · 2086 阅读 · 3 评论 -
[网鼎杯 2020 朱雀组]phpweb
打开环境,是一个非常优秀的图片,看一下源码,也没有发现,突然发现页面在自动刷新,就想到抓包一下:原创 2021-06-16 17:23:51 · 92 阅读 · 2 评论 -
[极客大挑战 2019]BabySQL
首先输入1'页面报错,说明存在SQL注入漏洞:接着输入1' or 1=1#,显示:说明or被过滤,就尝试双写绕过,输入1' oorr 1=1#登录成功,接着判断几个字段,用1' order by 3#尝试发现order中的or,by都被过滤,就饶过1' oorrder bbyy 3#发现有3个字段,用联合查询1,2,3试试,发现union和select都被过滤,就都双写,确认显示的位置:1'ununionion seselectlect 1,database().原创 2021-04-28 16:11:10 · 850 阅读 · 0 评论 -
[安洵杯 2019]easy_web
打开环境,页面没有发现,在url上看到有参数传递,cb5e08ab-2a7f-4acc-827b-eb50a64f87ad.node3.buuoj.cn/index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=原创 2021-06-13 15:54:37 · 175 阅读 · 3 评论 -
[BJDCTF2020]Mark loves cat
打开环境,经过一番查找没有发现,后来dirsearch扫描后发现.git泄露,用git_extract下载得到flag.php和index.php。原创 2021-06-08 12:58:29 · 304 阅读 · 2 评论 -
[BJDCTF2020]The mystery of ip
打开环境,有个flag和hint,点击flag,发现有我们本机IP的回显,很有可能是http请求头中有XFF信息将我们ip一起带过去了,我们先试试伪造XFF头看看情况。原创 2021-06-07 21:21:49 · 96 阅读 · 3 评论 -
[BJDCTF2020]ZJCTF,不过如此
打开环境,直接给了源码:<?phperror_reporting(0);$text = $_GET["text"];$file = $_GET["file"];if(isset($text)&&(file_get_contents($text,'r')==="I have a dream")){ echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";原创 2021-06-07 19:39:16 · 163 阅读 · 0 评论 -
[GWCTF 2019]我有一个数据库(cve-2018-12613漏洞)
环境打开,没有其他东西,只有几个字:用工具扫描(dirsearch等),发现了phpmyadmin页面,访问:phpMyAdmin是一种MySQL数据库的管理工具,安装该工具后,即可通过Web形式直接管理MySQL数据,而不需要通过执行系统命令来管理,非常适合对数据库操作命令不熟悉的数据库管理者。原来是数据库,但是问题出在哪呢?就在php的版本,此数据库php版本为4.8.1,经过查找资料,此版本php存在一个远程文件包含漏洞,编号:cve-2018-12613以下是造成该漏洞的源码:$targ原创 2021-06-02 18:09:42 · 139 阅读 · 0 评论 -
[GXYCTF2019]禁止套娃
打开环境,只看到:flag在哪里呢?查看源码也没有发现任何有用的内容,直接用工具扫看看,用dirsearch扫完还是没发现。这时想到有没有可能存在源码泄露。用GitHack试一下,结果真的存在git泄露,并得到一个index.php:<?phpinclude "flag.php";echo "flag在哪里呢?<br>";if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|p转载 2021-05-29 19:37:08 · 72 阅读 · 0 评论 -
GXYCTF2019]BabyUpload
打开环境,是个文件上传题,试着上传一个php的文件,结果提示后缀不能有ph。说明php和phtml都不能用了。再试试图片,可以上传,就上传一个php的post木马,结果显示:说明php的木马不行,就试试js的图片木马:GIF89a上传成功,访问上传路径,但发现并未被解析。此时就想到.user.ini和.htaccess但.user.ini试了还是不行,那就试试.htaccess.htaccess是什么 ?.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,转载 2021-05-28 20:34:04 · 421 阅读 · 0 评论 -
[BUUCTF 2018]Online Tool
打开环境,直接给出了源码:<?phpif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];}if(!isset($_GET['host'])) { highlight_file(__FILE__);} else { $host = $_GET['host']; $host = escapeshella原创 2021-05-28 20:04:09 · 129 阅读 · 0 评论 -
[GYCTF2020]Blacklist
打开环境,猜测是个SQL注入题,点击查询,出现:再输入1'报错,说明确实出现SQL注入。再用order by查询字段数,得到字段数为2。接下来尝试用union select查询数据库名,结果显示:说明正则过滤了图上的一堆东西,包括select和where,但没过滤show就试试堆叠注入,构造:1';show databases;#和1';show tables#可以轻易判断出当前是在supersqli的库中,得到两张表,同样判断在FlagHere表中,就构造:1';s原创 2021-05-26 22:27:07 · 143 阅读 · 0 评论 -
[网鼎杯 2020 青龙组]AreUSerialz
<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler { protected $op; protected $filename; protected $content; function __construct() { $op = "1"; $filename = "/tmp/tmpfile"; $content = "Hel.原创 2021-05-26 17:41:22 · 108 阅读 · 0 评论 -
[ZJCTF 2019]NiZhuanSiWei
打开环境,直接给出源码:<?php$text=$_GET["text"];$file=$_GET["file"];$password=$_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcometothezjctf")){echo"<br><h1>".file_get_contents($text,'r')."</h1...转载 2021-05-25 21:19:35 · 207 阅读 · 3 评论 -
[网鼎杯 2018]Fakebook
打开环境:点击login,是个登录页面,试验后未发现SQL注入漏洞,点击jion是个注册页面,注册好后:发现url上传了一个/view.php?no=1 在后面加个'发现报错:说明存在SQL注入漏洞,为数字型,接着用order by 查出字段数为4,就联合查询union select 5,6,7,8 发现:union select被过滤,此处可用union/**/select绕过,构造no=-1 union/**/select 5,6,7,8发现只有第二个字段能在usern...原创 2021-05-24 21:40:47 · 185 阅读 · 0 评论