墨者学院12 命令注入执行分析

问题描述

题目链接:命令注入执行分析

背景介绍:某单位IT运维人员,在服务器上留了一个页面用来ping内部服务器连通情况。安全工程师"墨者"检查发现这一文件存在漏洞,要求运维人员立刻下线。

(●'◡'●)点开以后链接以后,是一个乌漆嘛黑的网页~

墨者学院12 命令注入执行分析_第1张图片

 习惯性ctrl+u查看源代码~

墨者学院12 命令注入执行分析_第2张图片

这些就是已知的内容~


解决方案:

工具:Burpsuite(非必要)

1 查看源代码

01-18行以上是网页的样式规定与js库的加载,所以这里重点注释19行~32行的内容~

Super Ping On Line
  

以上内容大概是检查输入内容:输入的IP是数字,且为小于256的正数,用“.”连接;不满足格式要求则会弹出警告窗,保证输入花哨的东西会被挡住~

不过有一个比较致命的问题:它是在前端过滤的,这种情况通常可以用BurpSuite抓包绕过,还是比较不安全的~

2 Burpsuite

例如我们输入127.0.0.1,会正确返回信息~

127.0.0.1 意思是访问本地的IP,用这个满足前端的检查~

墨者学院12 命令注入执行分析_第3张图片

如果输入127.0.0.1|ls,大概就会被弹窗:IP格式不正确~

linux的管道符,前面的查询结果可以作为后面的输入,可参考:linux管道符 知乎~

ls 意思是查看文件夹,试探能不能看到系统的文件~

墨者学院12 命令注入执行分析_第4张图片

不过根据源码分析,是在前端设置用javascript代码过滤,那我们重新输入127.0.0.1,用burp抓包绕过前端检查试一试,下面是抓包的界面~

墨者学院12 命令注入执行分析_第5张图片

右键请求包发送到Repeater,最后一行改为127.0.0.1|ls~

点击Send,根据下图,发现网页没有弹窗,且成功执行了语句,可以看到系统存有三个文件:index.php、key_11459179938500.php、static~

墨者学院12 命令注入执行分析_第6张图片

下一步是查看(对应linux命令为cat)key.txt文件中的内容,最后一行改为127.0.0.1|cat%20key_11459179938500.php,点击send~

cat 意思是查看文件~

%20 这是空格的url转码,在某些题可以作为空格键的绕过(不过在这道题里无论是直接输入空格,还是输入%20,结果都是一样的失败)~

墨者学院12 命令注入执行分析_第7张图片

嗯...一片空白,没有看到文件中的内容,好像是因为空格被过滤了;参考评论区大佬的WP,有在用“<”代替空格绕过检查的~

也就是把数据包的最后一行替换为如下内容,这次网页正确回显了结果~

iipp=127.0.0.1|cat

墨者学院12 命令注入执行分析_第8张图片

key:mozhec1348caf838dd17aad8b7846b72

3 禁用javascript

嗯,因为检查输入内容的语句是用javascript写成的,因此有一些暴力的大佬不是在用burpsuite绕过javascript,而是在 浏览器-设置 中直接禁用了javascript的运行,如下图所示~

禁用步骤参考:Chrome中如何禁止指定网站js的执行

墨者学院12 命令注入执行分析_第9张图片

上面的图片以chrome为例,不允许使用 JavaScript中,增加了我们的目标网站~

解题思路同上,最后一步在输入框中填写:127.0.0.1|cat,可以看到网页同样成功回显了结果~

墨者学院12 命令注入执行分析_第10张图片

key:mozhec1348caf838dd17aad8b7846b72

愿本文有所帮助~欢迎留言沟通与讨论~(●'◡'●)

你可能感兴趣的:(#,墨者学院,javascript,web安全)