首先随便输入,进入页面,查看页面源代码
发现pass,尝试转换为ASCII码对应的,
发现是提示密码输入错误的话
然后看到fromCharCode,尝试转换为十进制,并转换为ASCII码相对应的根据题目提示的flag格式,最终得到flag为:Cyberpeace{786OsErtk12}
附~
simple_js
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) );
转换ASCII码
a=[70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65]
for i in a:
print (chr(i),end='');
转换为十进制
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" print (s);
根据题目要求。ip地址必须为123.123.123.123
利用burpsuit神器~
添加下面~
X-Forwarded-For: 123.123.123.123
如图
发现新要求,必须来自 https://www.google.com
添加下面的~
Referer: https://www.google.com
1、X-Forwarded-For
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
一般格式:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
其中的值通过一个 逗号+空格 把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到一个请求,就把请求来源IP地址添加到右边。 在上面这个例子中,这个请求成功通过了三台代理服务器:proxy1, proxy2 及 proxy3。请求由client1发出,到达了proxy3(proxy3可能是请求的终点)。请求刚从client1中发出时,XFF是空的,请求被发往proxy1;通过proxy1的时候,client1被添加到XFF中,之后请求被发往proxy2;通过proxy2的时候,proxy1被添加到XFF中,之后请求被发往proxy3;通过proxy3时,proxy2被添加到XFF中,之后请求的的去向不明,如果proxy3不是请求终点,请求会被继续转发。
伪造这一字段非常容易。像这个题,我们就是利用了X-Forwarded-For伪造了来源IP。
2、Referer
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。
一般格式:
Referer:url
伪造这一字段非常容易。像这个题,我们就是利用了Referer伪造了来源链接。
首先尝试输入测试一下
结果如下
进入/check.php,查看源代码发先必须使用admin
登录,并结合字典爆破
于是,使用admin尝试进行登录
结果如下
再次退回登陆页面,并打开burpsuit
send to Intruder
进入Position
,首先点击clean
,然后选中password
的值,点击add
,选择方式为Sniper
进入Payload
,添加字典
点击Start attack
发现,当password=123456时,长度不同,查看Response
得到flag~
参考:
https://blog.csdn.net/u011781521/article/details/54772795
https://jingyan.baidu.com/article/ca41422f054c881eae99eda0.html
注意~
Sniper:单个逐一进行破解
Cluster bomb:组合破解,适用于username+password
https://github.com/rootphantomer/Blasting_dictionary
弱密码是易于猜测的密码,主要有以下几种:
下面是一些常见的弱密码:
admin ——太容易猜出
123 ——同上
abcde ——同上
abc123 ——同上
123456 ——由于文化因素极其常用
1234 ——同上
888888 ——同上
1234567890 ——同上
susan ——常见人名
BarackObama ——高知名度人物
monkey ——常见动物名且正好六位
password ——经常被使用,极易猜出
p@$$\/\/0rd ——简单的字母替换,易被黑客软件破译
rover ——宠物的常用名称,也是一个单词
12/3/75 ——日期
nbusr123 ——可能是用户名,如果是这样的话很容易被猜出
asdf ——常用键盘的键排列
qwerty ——常用键盘的键排列
aaaaa ——重复的字母,极易被破解
Taiwan ——地名
administrator ——太容易猜出