第三周学习笔记
登陆攻防世界官网
第一题:PHP2
- 打开目标网站,进入后显示 “Can you anthenticate to this website?” 即 “你能认证这个网站吗?”
- 在网址后加上
/index.phps
看到图示页面查看源码
- 可见,要求我们使用Get传入id为"admin",且使得第一个if判断不成立,第二个判断成立
- 在两个 if 之间程序对传入的参数进行了URL解码,提示我们要对"admin"进行URL编码。而使用浏览器传入id时,浏览器会先对id进行一次urldecode编码,故我们需要对"admin"进行两次URL编码
- 在网站地址后加
/?id=%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65
,进入如下页面 - key即为本题答案。
第二题:backup
- 打开网站
- 推测备份文件为.bak后缀,在地址后追加
/index.php.bak
- 回车后会下载一个名为index.php.bak的文件
- 打开该文件,即可看到flag
第三题:weak*_auth*
据题意,为爆破类
-
随便输入用户名密码后提示用户名为admin
-
使用bp对页面进行抓包,并将包发送至intruder页面。
-
选择合适的字典,将爆破点设置为"password"。
-
根据返回包的长度判断密码为"123456"
-
从返回包中找到答案
题目四:simple_php
打开网页后为如图界面
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
- 对代码进行分析。
- 通过
$a=@$_GET['a'];
和$b=@$_GET['b'];
可知需要通过GET方法进行传参 - 第一个if中需要满足两个条件才能得到flag1
php中"=="为宽松比较
要使第一个判断成立,a可以是0或任何字符。而第二个判断则说明a不能为0,所以a可以等于除数字外的任何字符串,甚至可以是空格或汉字。
- 第二个if中
is_numeric($b)
为判断b是否全为数字,若是,则返回false,程序结束。
故b不能全为数字,可以在数字后加字母a。
- 第三个if则需要b>1234,所以b可以为"6666a"
- 将参数传入,答案出现
题目五:baby_web
- 根据提示是要打开网站的初始页面
因此将1.php改为index.php。
- 回车后发现又回到了1.php
- 使用bp进行抓包,并将包发送至Repeater页面。
- 将GET中的1.php改为index.php并发送。
- 在返回的包中就可以找到本题答案