XCTF web 新手练习区

view_source

F12查看源码就可以得到flag。


Robots

用御剑扫描后台,找到robots.txt


robots.txt的内容。


打开f1ag_1s_h3re.php就可以看到flag。


backup

题目提示

打开index.php.bak。

会下载一个文件,将后缀名改为txt就可以打开。

打开来是index.php的源码。

找到flag。


cookie

打开burpsuite抓包,查看cookie。

Cookie: look-here=cookie.php

打开cookie.php

再次用burpsuite抓包,send to repeater。

在response里面看见flag。

 


disabled_button

题目给了我们一个不能按的按钮。

应该是js。

f12点选择元素,再选择button。

 

删掉disabled就可以点击了。

点击之后获得flag。


weak_auth

打开网页,是一个登陆界面。

随便输入一用户名和密码,提示用admin登陆。

用admin和随便一个密码登陆,我写的是123456,没想到就这样解开了∑( 口 ||

实际上这道题可以用bp的intruder来爆破。


simple_php

打开网页是一段php代码。

1 <?php 2 show_source(__FILE__); 3 include("config.php"); 4 $a=@$_GET[‘a‘];//get传a 5 $b=@$_GET[‘b‘];//get传b 6 if($a==0 and $a){//a弱等于0并且a非空非0 7 echo $flag1; 8 } 9 if(is_numeric($b)){//b是数字则退出 10 exit(); 11 } 12 if($b>1234){//b大于1234 13 echo $flag2; 14 } 15 ?> 16 17

 

由这张图知道,a要非空非0且弱等于0就得是字符串。

参考链接

 

b要满足条件可以在后面加上%00(空)或者是ox(拼接字符串)来绕过。

构造payload:?a=”php”&b=12345ox

获得flag


get_post

打开hackbar,用get方式传值。

再用post方式传值。

获得flag。


xff_referer

ip地址必须位123.123.123.123

用xff来伪造ip。

打开burpsuite,拦截,send to repeater。

要求要来自谷歌,加上referer。

获得flag。


webshell

这里已经把一句话告诉我们了,可以直接用中国菜刀链接,也可以用hackbar,这里采用hackbar的方式。

看看有哪些文件。

有一个flag.txt,打开来看看。

获得flag。


command_execution

拿127.0.0.1试一试。

没有问题,拿ls试一试(参考:参考链接

127.0.0.1&&ls

查找txt格式的文件。

127.0.0.1&&find / -name "*.txt"

找到了flag.txt

打开flag.txt

127.0.0.1&&cat /home/flag.txt

找到flag。


simple_js

打开题目,让你输入密码,随便输入一个。

没有什么思路,看看源码吧。

在源码里面看见了一段js代码。

 1  2 function dechiffre(pass_enc){ 3 var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65"; 4 var tab = pass_enc.split(‘,‘);//把输入的依据‘,’分隔 5 var tab2 = pass.split(‘,‘);var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length; 6 k = j + (l) + (n=0); 7 n = tab2.length; 8 for(i = (o=0); i < (k = j = n); i++ )//n=18 9 {o = tab[i-l];p += String.fromCharCode((o = tab2[i])); 10 if(i == 5)break;}//p=“FAUX P” 11 for(i = (o=0); i < (k = j = n); i++ ){ 12 o = tab[i-l]; 13 if(i > 5 && i < k-1) 14 p += String.fromCharCode((o = tab2[i])); 15 }//p=“FAUX PASSWORD HAH” 16 p += String.fromCharCode(tab2[17]);//p=“FAUX PASSWORD HAHA” 17 pass = p;return pass;//pass=p,return pass的内容 18 } 19 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")); 20  21 h = window.prompt(‘Enter password‘); 22 alert( dechiffre(h) ); 23 

仔细一看pass_enc除了开头出现了一次就毫无纯在感了Σ(っ °Д °;)っ,而且对最后return的结果没有影响,所以说无论输入什么出现的结果只会是FAUX PASSWORD HAHA……

然后又看到了源码里面有一段以16进制显示的ascii码,转换来看看是什么。

786OsErtk12

去提交一下,加上Cyberpeace{},过了。

 

 

相关文章