知识点1:逻辑漏洞
知识点2:文件上传---在html中执行php代码
步骤1目录扫描
步骤2正常注册一个账号,去里面看看,发现manage处不让看
步骤3尝试变为admin,这里有两种方法
1.尝试通过uid来获取admin的信息,然后去reset重置密码
uid为数字,我们可以猜测0,1,2,3,4,5
user的值是32位的,猜测是一串md5值,我们可以推测是我们注册的账号的md5,但是实际上是的格式是 UID:用户名
找到加密方式后就可以通过访问admin的信息来重置admin的密码
分别对 0:admin,1:admin,2:admin......这样子的结合进行md5加密
在1:admin加密后就找到了admin的信息
拿着这些信息去reset页面重置admin密码
2. 通过垂直越权来重置admin密码
提交新密码后抓包
将username改为admin,然后就成功重置了admin的密码
步骤4伪造ip
尝试访问manage页面,但提示ip不允许
尝试通过x-forwarded-for:127.0.0.1来伪造ip
读取源码
步骤5对do的值进行猜测
ctf总共就几个知识点,猜测xss,sql,ssrf,upload
步骤6选择上传文件,并想办法绕过
直接上传图片马
连.png结尾的都上传不了,说明服务器会对图片内容进行检测。
步骤7答案
获取答案的过程就是不断尝试绕过,发现服务器存在的绕过
1.mime检测;2.大小写绕过;3.等价替换(php5,php3)
4.也是本题的考点,利用JavaScript执行php代码(正常的php代码会被检测到,所以就考虑用JavaScript来执行)
<script language='php'>alert(@eval(_POST["aaa"]))</script>
这个payload也行