攻防世界-Web
view_source Write up
打开给的链接,根据给的提示,Flag不在这里,而且鼠标右键不能使用
直接F12调出 开发者工具
flag为 cyberpeace{bc345f9c088f266e87059c4136c34477}
get_post Write up
Http通常使用的两种请求方式,GET和POST
GET请求方式是将参数包含在URL中
POST请求方式是存在于数据包的请求头中
flag为 cyberpeace{8da2cc157f6b33a45bef1cdb2907b698}
robots Write up
robots协议 简而言之,就是记录了允许你访问什么 不允许你访问什么的一个纯问本文档 -----> robots.txt
直接去访问robots.txt
发现有一个 f1ag_1s_h3re.php 的文件,直接去访问
flag为 cyberpeace{275545b53275742bd21a66ae7b95e00c}
back up Write up
题目重点 备份文件
一般备份文件的后缀为 .bak
直接访问 index.php.bak
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7WqMDvEC-1675849206605)(C:\Users\ZY\AppData\Roaming\Typora\typora-user-images\1675672749267.png)]
直接修改为index.php 记事本去访问
flag为 Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}
cookie Write up
cookie是一种用户凭证,一般存在于客户端
cookie 可以在浏览器页面进行查询
很明显可以看出存在一个 cookie.php 尝试访问
然后去看 response
flag为 cyberpeace{65d81c88c6ef7820d88156e8a3678692}
disabled_button Write up
因为是在页面上的按钮,牵扯到html 的代码,直接调出源码查看
发现按钮被禁用,直接把disabled 删除,发现可以使用
flag为 cyberpeace{78a047cf837e50087765048601f38b6f}
simple js Write up
发现无论输入什么都会显示
function dechiffre(pass_enc){
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
}
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );
看到了几串很醒目的数字,编码
70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65
尝试ascii解码
值为 FAUX PASSWORD HAHA ,发现出现了弹框的内容,代码中也没有出现这些,于是大胆猜想是不是需要的flag也不需要进行运行函数,于是对加密字符串解码
\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30
尝试16进制转化10进制:
Tips:
16进制转化10进制,因为在python中print输出的值默认为10进制,所以说直接将字符串带入输出即可得到10进制的值
byte = "\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"
print(byte)
结果为 55,56,54,79,115,69,114,116,107,49,50
再继续进行Ascii解码
786OsErtk12
将解码过后的值输入到框重时,还是相同的结果,根据条件也没别的可以得到
直接构建flag
Cyberpeace{786OsErtk12}
xff_referer Write up
xff --> x-forwarded-for 是http请求字段,简言就是获取访问者的 ip地址,直接将 xff 设置为 123.123.123.123 进行尝试
利用插件,发现需要是来自 www.google.com
referer 也是http请求字段,来自何处的意思
flag为 cyberpeace{8ac6bc5e7c67ca6ea05c2dfccc8cb8f9}
weak_auth Write up
用户名为 admin ,只需要知道密码即可
利用burp 爆破模块进行密码爆破
只需要给密码加即可,加载字典爆破
flag为 cyberpeace{32b555451d7cc9d42154c9065e7d0456}
command_execution Write up
因为 管道符 | 的存在,当执行一个命令的时候 管道符后面的命令也会执行
ls dir分别为 linux 和 windows 系统的查看目录命令,可以看一下是什么系统
发现有一个index.php 并没有我们需要的文件,利用find命令来查询
发现/home/flag.txt 利用cat 命令来查询
flag为 cyberpeace{3519fcbe668dd46ac9e3d0df2ab11a75}
simple_php Write up
发现给了源码
代码分析
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a']; //@是不返回错误信息
$b=@$_GET['b'];
// a,b 都是GET传参
if($a==0 and $a){
echo $flag1;
//如果$a == 0 输出flag1
}
if(is_numeric($b)){
//如果$b 是数字直接退出
exit();
}
if($b>1234){
echo $flag2;
//如果$b > 1234 输出flag2
}
?>
两个绕过:
一. == 双等 绕过
== 在进行比较的时候会先转化为相同类型在进行比较,admin 字符串 false等在转化为int型是为0
二. is_numeric()绕过
- is_numeric 函数 不仅检查10进制而且检查16进制,但是is_numeric 函数对 空字符%00 不会去理解,不管放在前还是放在后都不会对该数值判断为数字或者数字字符串(一般建议放后面)
- 可以尝试其他的组合进行,因为要进行比较,需要对输入的值进行一个数值类型的转换,6666a等。。也可进行
flag为 Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}