Web_php_unserialize
Base64_decode():对base64编码的数据进行解码
die():exit()函数的别名
@:添加该符后强行抑制错误信息
Highlight_file():函数的参数若设置为’true’,则将文件高亮处理返回
private:private属性序列化后将变成\x00类名\x00属性名,如Demofile
O:+4:”Demo”:2:{s:10:”Demofile”;s:8:”fl4g.php”;}
+4绕过preg_match,2绕过__wakeup()函数
至于为什么上传该对象就能查询这个文件还有待学习
Upload1
可知本题要利用文件上传漏洞
经过代码审计,可知上传文件的后缀名必须是jpg或png
方法一:写一句话木马,将后缀名修改为jpg或png,再通过burpsuite抓包,将上传文件的后缀名修改成php后缀,再利用中国蚁剑利用一句话木马的密码登录服务器
方法二:F12进入控制台,修改网页js代码,将后缀名过滤部分删除,并将上传按钮标签的disable删除(否则按钮将无法使用),即可上传php文件,再配合中国菜刀即可登录服务器。
NaNNaNNaNNaN-Batman
用记事本打开文件后发现是乱码,但是可以看出包含js代码,于是将文件后缀名改为html,打开后发现一个输入框,审计乱码发现结尾有一个eval()函数,将eval改为alert,弹出正常的js代码(不知道这个操作是什么原理),整理后如下
观察代码发现需要输入一串满足上述五个if语句条件的字符串
需要了解正则表达式中,^代表开头,$代表结尾
因此字符串条件为长度16,开头是be0f23,结尾是e98aa,还要包含233ac、c7be9
四串字符串拼接后的长度为21,再根据各字符串的重合删除,即可得到长度为16的字符串