【自用】【做题日记7】CTFHUB-RCE

上一篇:【自用】【做题日记6】CTFHUB-文件上传

2.15

eval执行

 用蚁剑连接,找flag。

这个连接密码就是被REQUEST的cmd。

 文件包含

 用get传:file=shell.txt

然后就能用蚁剑连接,密码ctfhub。

翻找得到flag。

 php://input

这个题首先会过滤GET到的file,要求file的前6个字符必须是php://

之后有一个include(file),如果file是php代码的话,能够被执行。

所以用get传file=php://input,来通过substr;

并且用post传<?php system('ls')?>;,在include的时候能被执行。

 找flag。

 cat打开flag文件,获得flag。

 2.20

读取源代码

 使用php://filter,直接访问?file=php://filter/resource=/flag

 3.7

远程包含

 直接用php://input 的方法做就可以了。

 然后就是翻找flag啦。

 3.8

命令注入

格式:127.0.0.1 & 要使用的命令

(使用& 而不是 && : &不管前一句是否成功都会运行后一句

然后注意这个php不能直接用cat,要用base64转码。

 

 再转回来,获得flag。

 过滤cat

和上题解法一样。

过滤空格

先看一下,可以看到flag文件。

在shell中可以用${IFS}代替空格。

获得flag。

 

过滤目录分隔符

这里可以用 ; 来实现多个命令的依次使用。

 

 然后再base64打开flag文件就行。

 3.9

过滤运算符

; 代替 & 就行。

 

 base64解码,获得flag。

综合过滤练习

 也就是 | & ; 空格 cat flag ctfhub 都被过滤了。

&和;可以用%0a代替,空格就是${IFS},flag有点头晕 直到我看到这样一篇wp:

CTFHub题解-技能树-Web-RCE【过滤目录分隔符、过滤运算符、综合过滤练习】(二)

%09* 补全 绝了!妙蛙种子吃了妙脆角妙到家了!

 

所以这样构造url:

 cat被过滤?直接换成base64就行。

http://challenge-acb93a2af8e1dc46.sandbox.ctfhub.com:10080/?ip=127.0.0.1%0Acd%09*is_here%0abase64${IFS}%09*_22868659918422.php

 

解码,得flag。

完工咯!

原文地址:https://www.cnblogs.com/qwerta/p/14403616.html