从CTF题目中领悟的渗透技巧鹏越·学霸专区

导语:本来个人不是很喜欢去做那些CTF题目,觉得无聊,还是比较喜欢实战一些,但是现在发现,有的CTF做起来可以获取到一些奇特的渗透技巧。

0x1 题目要求

题目大概的要求是这样的:

题目的代码是我重新写出来的,多少根原题有些不一样。但是大概差不多了。就是有一道`flag`存放在,`4hou.php`文件中,想办法读取这个文件,并取得`flag`。

0x2 题目复现

在想办法复现之前先来看看`4hou.php`文件中究竟有什么东西:

这就是存放在`4hou.php`文件中的内容。重新回到题目中,首先,看到`http://192.168.12.102/index.php?cmd=`这样的url相信大家在第一时间都会想到命令执行,没错的就是命令执行。先来输入一道命令来查看下他是什么情况,到底是怎么个意思。提交一个这样`http://192.168.12.102/index.php?cmd=cat `的链接,看看回显出来的是什么样子

发现回显中并没有空格,那肯定我们得自己家一个空格了,加上空`%20`提交

> http://192.168.12.102/index.php?cmd=cat%20

猜对了,加上一个空格成功被分割开了。这个是有有的同学就像说,把`cat`命令之前在加一个空格,那样`curl`命令也可以分割开了,分隔开是没有错了,但是有什么用?命令就执行了`curl cat 4hou.php`这样的一道命令,一样还是没有执行`cat`命令。

继续提交一堆参数,看看这个函数究竟过滤了什么。提交`http://192.168.12.102/index.php?cmd=/+-()*`,一堆有的没的,目的就是看这个参数过滤了什么

过滤了什么,没过滤什么一幕了然。

现在要想的就是如何让`curl` 不执行,但是要让`cat`命令执行。想想,怎么办?

使用`%0a`,这个`url`编码是换行符,曾经在sql注入的时候的时候,经常使用`%0a`字符来换行污染来进行注入的。那不妨来尝试一下,看看能不能在`curl`之后换行进行执行。提交`http://192.168.12.102/index.php?cmd=%0acat%20`

成功读出来了存放在`4hou.php`中的内容 ps:因为我不太会写php,代码的问题输出了两遍。

0x3 难度增加,不服继续

过滤空格又何妨?一样可以想办法执行的!

0x4 任意代码执行?

过滤了一堆,那还有没有可能来构造任意代码执行?

标题都写这里了,当然有机会了!相信所有人在思考的问题都是空格怎么解?

在linux中,可是有代替空格的东西哦,比如`` 。试一下

看,ok的,重新回到网站中尝试构造`payload`:`http://192.168.12.102/index.php?cmd=%0als$-a`

结果:

任意代码都没有问题了。都这样了,当然继续猥琐了,我们想看的文件无非就是`passwd`文件,但是`/`被过滤了,怎么绕过?

少年莫慌,咱们继续执行`env`命令,可以看到全部的环境变量提交:`http://192.168.12.102/index.php?cmd=%0aenv%3C`

因为解析的问题,是在没办法在web上跑了,不得不转向虚拟机(只是这里没有办法提取到环境变量而已,方法还是有的,往下看)

反正照样执行成功,就算他过滤的再凶,终究是有办法绕过的。只有想不到,没有骚不到。

0x5 其他骚操作

因为解析不了的原因,没的办法,只能用虚拟机演示了。

还可以使用base64加密绕过,终端下执行:

> echo Y2F0IC9ldGMvcGFzc3dk|base64 -d|bash

`Y2F0IC9ldGMvcGFzc3dk`加密之前为`cat /etc/passwd`

一样可以顺利执行代码。

修改代码,讲过滤条件修改

> array('>',''','','/',' ','

还有没有希望?

0x6 蛇皮操作—最终章

这种操作真的是丧心病狂,只要你环境变量中有的字符,我无法调用算我输!

`expr`万能的神!比如说你看上了这个`:`

直接构造`expr$substr$$DISPLAY$1$1`

想要别的!

`http://192.168.250.227/index.php?cmd=%0acat$$(expr$substr$$PWD$1$1)etc$(expr$substr$$PWD$1$1)passwd%3C`

提交看结果

(作者:smileTT,来源:嘶吼)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180312B0ZVKN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券