攻防世界新手区
目录:

1. view_source

- 这个题很明显的,只需要查看源代码就能看到 flag,但是不能鼠标右键
- 这里可以直接按
F12键或者Fn+F12即可 - 也可以在URL前面加上
view-source:查看源代码

2. robots

# robots协议
1. robots协议也叫robots.txt,是一种存放于网站根目录下的ASCII编码的文本文件
2. robots.txt 文件通常用来告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。
3. 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。
4. robots.txt应放置于网站的根目录下。
- 通过
robots协议,直接访问根目录下的robots.txt文件,得到还存在一个f1ag_1s_h3re.php文件

- 访问链接
http://111.200.241.244:53876/f1ag_1s_h3re.php,获得 flag

3. backup

- 通过提示,此题考的是备份文件泄露,一般备份文件的后缀名是
.bak - 直接访问
index.php.bak下载,打开看到 flag

4. cookie

- 题目名字和提示考的是
cookie,所以进入链接,右键选择检查 - 在
Network中Headers里面找到cookie(需要刷新一下),找到cookie.php文件

- 访问
cookie.php文件,在Response Headers中看到 flag

5. disabled_button

- 这里考察简单的前端知识,右键调出调试窗口,看到
<input>标签中有一个disabled,删除即可


6. weak_auth

- 这里提示 随手设了一个密码 ,然后是登陆页面,所以优先考虑弱口令
- 输入用户名
admin,密码123456即可
7. simple_php

一个简单的PHP审计,需要使用 GET 方式提交两个变量
a变量使用的是弱类型比较==,需要等于0,但是单独使用时不是0,由于是弱类型比较,使用0a即可绕过(这里可以是0b,0abc等类型的都行)b变量有两个判断,一个是要求不能是数字,然后要求值大于1234,同样的可以使用弱类型比较绕过访问链接:
http://111.200.241.244:50716/?a=0a&b=12345a,获得 flag

8. get_post

- 考察简单的GET和POST两种提交方式,推荐使用浏览器插件
HackBar(也可以使用 burpsuite 抓包修改也可)

9. xff_referer

- 考察的是
xff和referer xff也即X-Forwarded-For,作用是使Web服务器获取访问用户的IP真实地址,但可以伪造referer用来告诉浏览器当前连接是从哪个链接跳转过来的

- 使用工具
burpsuite抓包,发送到Repeater模块处理(也可以不用,但是通常这么做,用来处理数据比较方便,推荐使用)

- 根据提示,在信息中添加
xff信息,查看Response返回的信息,需要伪造referer

- 再添加
referer字段信息,获得 flag

10. webshell

内容考察PHP一句话,这里可以使用蚁剑,菜刀直接连接,然后查看文件,获得 flag
但由于这里的一句话使用的是
eval()函数,能够将里面的内容变成字符串使用,可以理解为变成文件中的代码。嘿嘿,所以直接使用 POST 提交一个
shell变量,然后变量的内容传入system()函数即可,就能直接调用系统命令,这么使用会方便很多,但需要注意,传入的内容需要加上一个分号;传入
shell=system('ls');看到当前页面有一个flag.txt文件,所以直接cat flag.txt即可


11. command_execution

- 传入
127.0.0.1,就是简单的ping命令

- 使用命令
id看到能够执行命令,所以内容也很简单,就是很简单的命令执行,使用;作为间隔,用来执行两条命令

- 直接
find / -name flag.*,获得 flag 文件的路径 - 拿到路径后,直接
cat即可


12. simple_js

- 进入链接,弹出一个验证窗口,需要输入密码,但是尝试好几个都是同样的结果

- 直接右键查看代码,看有没有什么好东西,发现了一堆JS代码,里面定义一个函数
dechiffre,能用来处理传入的ASCII码内容

<html>
<head>
<title>JS</title>
<script type="text/javascript">
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));
</script>
</head>
</html>
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"));- 代码里面发现这里调用了函数,还有下面的
alert(),但没啥关系 - 看到这个
\x,十六进制编码,直接右键检查,丢在Console中解码,获得ASCII码内容

- 用python写几行代码,将ASCII码转为字符串,然后前面的提示中有flag格式为
Cyberpeace{} - 所以将内容放进去尝试一下,成功
asciis = "55,56,54,79,115,69,114,116,107,49,50"
alist = asciis.replace(',', ' ').split(' ')
for i in alist:
print(chr(int(i)), end='')
Cyberpeace{786OsErtk12}
版权声明:本文为weixin_50289181原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。