一进去就是一个神仙网站啥也看不懂。。但是他好像是类似于留言板的那种功能
先注册一个admin试试
被**注册过了 约束攻击也不行 sql注入并没有任何的用处。。**
注册了一个就进来了
尝试一下**XSS 很明显 没有成功**
但是注意到URL这里有参数传入:
通过一些简单的测试像是sql注入,目录爆破,源码泄露这种常见套路走不通了hhhhhh,最后发现页面post.wtf下有路径穿越漏洞(如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其他后端文件系统的文件或目录,就胡出现路径遍历。攻击者可以将路径遍历序列放入文件名内,向上回溯,从而访问服务器上的任何文件)
发现了网站源码。太恶心了 杂乱无章
在看的时候发现了flag关键字:
格式化
可以看出只要登录admin账号就可以获得flag1:
发现有个users的文件夹 于是乎
抓包修改一下吧**
一半的flag到手了**
回到前面的…/开始快乐代码审计,先是找到这段代码:
**发现服务器能执行wtf文件,接着代码审计555:**
这是评论功能的后台代码,这部分也是存在路径穿越的。
这行代码把用户名写在了评论文件的内容中:**echo “${username}” > “${next_file}”;**
通过上面的分析:如果用户名是一段可执行代码,而且写入的文件是 wtf 格式的,那么这个文件就能够执行我们想要的代码。 (而且wtf.sh只运行文件扩展名为.wtf的脚本和前缀为’$’的行)
先普通地评论一下,知晓评论发送的数据包的结构,在普通评论的基础上,进行路径穿越,上传后门**sh.wtf**
:
**%09**
是水平制表符,必须添加,不然后台会把我们的后门当做目录去解析。
访问后门,发现成功写入:
为了写入恶意代码,我们得让用户名里携带代码,故注册这样一个用户:${find,/,-iname,get_flag2} 写入后门:
访问后门,执行代码,寻找get_flag2
(因为之前获得 flag1 的时候是 get_flag1
):
获得 flag2 所在的路径。
继续注册新用户:$/usr/bin/get_flag2 写入后门:
访问后门,获得 flag2: