前言
最近在Github上面发现了一个不错的Web漏洞练习靶场——LKWA,它包含了八种Web漏洞:
- Blind RCE
- XSSI
- PHP Object Injection
- PHP Object Injection via Cookies
- PHP Object Injection (Object Reference)
- PHAR Deserialization
- SSRF
- Variables variable
项目地址:https://github.com/weev3/LKWA
搭建方法
官方部署
然后进入该目录下
然后访问
http://ip:3000
即可。注意
对于
XSSI
实验,需要把apache2.conf
配置文件中的Allow Override None
改成Allow Override ALL
对于
PHAR Deserialization
实验,需要把php.ini
配置文件中的phar.readonly = On
改成phar.readonly = Off
非官方部署
由于按照官方的搭建方法有的实验无法复现,所以重写了Dockerfile,并且配置文件也改好了。
镜像已上传到Dockerhub。
具体使用方法:
然后访问
http://ip:3000
就能看到LKWA靶场啦。
实验复现方法
实验一:Blind RCE
blind_rce.php
代码部分:
在第10行由POST方式传入
user_input
变量的值,然后使用exec函数执行了user_input
值,并且没有回显输出。此时我们可以结合Burpsuite Collaborato模块来查看输出。



Payload


实验二:XSSI
https://stackoverflow.com/questions/8028511/what-is-cross-site-script-inclusion-xssi
使用用户名
admin
密码password
登录,然后可以看到用户名和随机token。
用户名和令牌是使用ajax检索的,如下所示:

POC
保存成xssi.php,在本地搭建好,然后访问该URL获取token。

实验三:PHP Object Injection
https://blog.csdn.net/qq_19876131/article/details/50926210
在该实验中,单击提交按钮后,一些序列化数据将会添加到url中,如下图所示:

POC
然后运行上面的脚本

复制序列化的输出字符串,将其替换为object参数的值,然后发送请求。

然后就可以看到有个
test.php
文件被创建。
实验四:PHP Object Injection via Cookies
该实验与实验三相同,唯一的区别是对象注入发生在cookie中。
使用用户名
admin
密码password
登录,一些序列化数据将添加到cookie中。
POC

然后将输出的字符串替换cookie(注意符号URL转义)。


实验五:PHP Object Injection (Object Reference)
看到一个输入框,随便输一个试试,他会提示Loser!!!!

代码部分:

如图所示,它让我们的输入数字和序列化数据,然后将输入的数字与随机生成的密码进行比较。如果输入的数字与该密码匹配,则表明Win,否则Loser。
明显这是不可能的,但是可以想办法绕开,从而获得Win。
POC


实验六:PHAR Deserialization
https://www.freebuf.com/articles/web/182231.html
POC
运行后会在本目录下生成一个
pharfile.phar
文件,然后把该文件上传

Payload

实验七:SSRF
在输入框中输入一个图片的url,将会在页面中显示出来

代码部分:
代码比较简单,也可以包含
/etc/passwd
之类的本地文件。
实验八:Variables variable
https://www.exploit-db.com/papers/13182
在输入框中输入一些值,然后就会
var_dump
输出你输入的值。
代码部分:

如果以GET方式传入
func
和input
的值,则将func
的值添加到$var
变量中,然后会将$var
变量添加到动态变量中。该动态变量可控,我们可以把
var_dump
换成assert
或者passthru
等等。
- Author:Linuz
- URL:https://linuz.me/article/LKWA
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!