本篇还是CTFweb刷题的记录,来自xctf。每天更新两道~
1.小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
打开网址出现输入框,看看能不能带一个其它命令进去
命令执行
- command1 && command2 先执行 command1,如果为真,再执行 command2
- command1 | command2 只执行 command2
- command1 & command2 先执行 command2 后执行 command1
- command1 || command2 先执行 command1,如果为假,再执行 command2
带入find / -name ” flag*” ,看看有没有flag
果然有,那就直接打开,应该就可以得到flag了
2.小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
打开网页
输入密码返回错误,在这里是找不到什么了,看看源码
<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>
阅读代码,发现输入任何值都会输出pass转化成的字符串,下面有个奇怪的String,怀疑密码就在这里。首先把这段16进制密文转换为10进制(base16 \x只是分隔符)。
应该是ASC2码值,转化成字符串
得到 Cyberpeace{786OsErtk12}
明天继续更新!