Wirte-up:攻防世界Web解题过程新手区07-12

文章更新于:2020-04-16

注1: web 环境搭建参见: Windows&linux使用集成环境搭建 web 服务器
注2:DVWA 靶场搭建参见: 搭建DVWA Web渗透测试靶场
注3: sqli 注入靶场搭建参见: 搭建 sqli SQL注入练习靶场

注4:蚁剑的使用参见:AntSword 中国蚁剑的下载安装配置(附下载文件)

新手区 7-12 题

    • 七、simple_php
    • 八、get_post
    • 九、xff_referer
    • 十、webshell
    • 十一、command_execution
    • 十二、simple_js
    • 十三、Enjoy!

七、simple_php

题目描述: 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
题目解读: 此题是对 php 数据类型转换的考察。

解题:

  1. 打开题目如图所示:
    Wirte-up:攻防世界Web解题过程新手区07-12_第1张图片

  2. 题目需要我们用 get 方法提交 ab 两个参数。
    要求 a0 且 为
    要求 b 不是数字且大于 1234

  3. 构造URL,获得flag
    注1:0a 作数字时会去除后面非数字部分,也就是相当于 0
    注2:0a 做字符串时,因其非空非 0,所以为真
    注3:直接判断 999a因含有 a 所以其类型是字符串而不是数字
    注4:同理,999a 作数字会去掉非数字 a 相当于 9999>1234

Wirte-up:攻防世界Web解题过程新手区07-12_第2张图片

八、get_post

题目描述: X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
题目解读: 毫无疑问,是 GETPOST

解题:

  1. 题目如图所示:

Wirte-up:攻防世界Web解题过程新手区07-12_第3张图片
2. GET提交 ?a=1

Wirte-up:攻防世界Web解题过程新手区07-12_第4张图片
3. POST 提交 b=2
注:火狐插件:Max HackBar

Wirte-up:攻防世界Web解题过程新手区07-12_第5张图片

九、xff_referer

题目描述: X老师告诉小宁其实xff和referer是可以伪造的。
题目解读: 确实是可以伪造的,你可以改写请求头信息

解题:

  1. 题目如图

Wirte-up:攻防世界Web解题过程新手区07-12_第6张图片

2.伪造 X-Forwarded-For
注:使用 BurpSuite 抓包并在请求头里面添加:X-Forwarded-For: 123.123.123.123
得到提示必须来自 google.com

Wirte-up:攻防世界Web解题过程新手区07-12_第7张图片

  1. 伪造 Referer 得到 flag

Wirte-up:攻防世界Web解题过程新手区07-12_第8张图片

十、webshell

题目描述: 小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
题目解读: 有 shell ,知道密码用 C刀蚁剑 连。

解题:

  1. 打开题目如图所示:

Wirte-up:攻防世界Web解题过程新手区07-12_第9张图片
2. 这里使用蚁剑连接:

Wirte-up:攻防世界Web解题过程新手区07-12_第10张图片
3. 查看文件

Wirte-up:攻防世界Web解题过程新手区07-12_第11张图片
4. 得到 flag 文件

Wirte-up:攻防世界Web解题过程新手区07-12_第12张图片
5. 得到 flag

Wirte-up:攻防世界Web解题过程新手区07-12_第13张图片

十一、command_execution

题目描述: 小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
题目解读: 命令执行是在页面提供的输入框内通过加分隔符来实现多条命令的执行。

解题:

  1. 题目界面如图

Wirte-up:攻防世界Web解题过程新手区07-12_第14张图片
2. 搜索 flag 文件

Wirte-up:攻防世界Web解题过程新手区07-12_第15张图片
3. 查看 flag
Wirte-up:攻防世界Web解题过程新手区07-12_第16张图片

十二、simple_js

题目描述: 小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
题目解读:

解题:

  1. 题目如图所示:

Wirte-up:攻防世界Web解题过程新手区07-12_第17张图片

  1. 右键检查元素发现 js 代码

Wirte-up:攻防世界Web解题过程新手区07-12_第18张图片
代码如下:

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) );

但是发现这段 js 代码没什么卵用,无论你输入什么都会返回固定值。
而真实的密码很可能存在于 fromCharCode

  1. python 处理,得到 flag
s = "\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"
s = s.split(",")
for i in s:
	print(chr(int(i)),end="")
# 786OsErtk12

Wirte-up:攻防世界Web解题过程新手区07-12_第19张图片
将解码出来的这段字符,加上之前题目给的提示 Flag格式为 Cyberpeace{xxxxxxxxx} 即是最终 flag

十三、Enjoy!

你可能感兴趣的:(网络安全)