一.打开攻防世界,找到PHP2,获取在线场景,点击对应网址。
二.这道题是一个PHP代码审计的题目,需要我们找出其中的漏洞并进行利用。
具体步骤如下:
1. 访问网站,输入任意用户名和密码,点击登录,可以看到提示“你可以登陆这个网站吗?”,这是一个提示,告诉我们需要进行代码审计。
2. 在网址后面加上“/index.phps”,可以看到网站的源代码,仔细查看可以发现,代码中存在两个漏洞。
3. 第一个漏洞在于,代码中使用了“==”进行比较,而没有使用“===”,这意味着可以进行类型转换,从而绕过判断。具体来说,我们可以对“admin”进行URL编码,使其变成“%61%64%6d%69%6e”,这样在比较时就会被转换成字符串“admin”,从而绕过了判断。
4. 第二个漏洞在于,代码中使用了一次URL解码,但没有使用两次,这意味着我们可以对“admin”进行两次URL编码,使其变成“%2561%2564%256d%2569%256e”,这样在解码时就会被转换成字符串“admin”,从而绕过了判断。
5. 综上所述,我们可以构造如下URL进行攻击:
http://your-ip/?id=%2561%2564%256d%2569%256e
(<用户名>:<密码>@<主机>:<端口>/<url路径>)
词条:(1)代码审计:检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议;
(2)URL:统一资源定位系统(uniform resource locator;URL)
统一资源定位系统是专为标识Internet网上资源位置而设置的一种编址方式,平时所说的网页地址指的即是URL。 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。