PHP代码审计练习二

1、安装解压安装文件可以上传webshellgetshell

PHP代码审计练习二

PHP代码审计练习二

这段代码上传就解压,只判断是不是zip文件,所以直接把webshell打在zip包里既可以上传了。

 PHP代码审计练习二

可以看到todir是支持自定义的。所以知道webshell上传的目录,那么就可以getshell了。

 

2、任意文件删除

看有删除安装包的功能

 PHP代码审计练习二

进行代码跟踪

 PHP代码审计练习二

对传进来的文件名不做处理,直接删除,然后把安装文件anzhuang.php重写,失效

所以我们这次把安装包文件名修改为index.php文件看看删除是否成功

 PHP代码审计练习二

测试发现index.php文件成功被删除。

 

3、目录遍历漏洞

 PHP代码审计练习二

可以直接访问数据内容直接获取到重要信息

 

4、管理员密码找回漏洞

 PHP代码审计练习二

首先看到它判断邮箱是否存在用strstr()函数来判断,这个函数只要我们输入的参数在$arr[1],中即可。所以邮箱直接输入一个@就可以了。

 PHP代码审计练习二

然后再审计一下,发送邮箱用的密码是由rtrim(substr($arr[0],15))函数生成,我们进入file.php查看$arr[0]

 PHP代码审计练习二


PHP代码审计练习二其实就是用户名

所以密码找回直接我们直接输入 admin  admin就可以直接登录成功。

 PHP代码审计练习二

5、添加头像插入连接可以xss

 PHP代码审计练习二

有个添加连接的地址,源码跟踪

 PHP代码审计练习二

只判断连接的结尾为reg中的任意一个

然后就调用add_infile来添加头像

继续跟踪add_infile方法。

 PHP代码审计练习二

传入的link会和img标签做拼接

所以直接构造playload      #\" onerror=alert(/xss/)>.jpg  可以直接弹窗

 PHP代码审计练习二