XCTFweb新手练习题目链接:https://adworld.xctf.org.cn/task/task_list?type=web&number=3&grade=0
题目链接:http://111.198.29.45:51846/ 题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。 根据题目提示和标题,我们可以知道flag在网页源代码中,然而网页中我们无法使用鼠标右键点击查看源码,我们有以下两种方法 方法一 按F12,在设置中禁用JavaScript,就可以右键查看源码了 方法二 在url前面加上view-source:即可查看网页源码
view-source:http://111.198.29.45:51846/flag:cyberpeace{ae515780d11a5ba6093ab97272733031}
题目链接:http://111.198.29.45:43568/ 题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗? 打开网页,要求我们用GET方式提交一个值为1的变量a 我们在url后面加上?a=1
http://111.198.29.45:43568/?a=1让我们用POST方法提交一个值为2的变量b 用burp抓包 这是抓包的结果 1.我们将头中第一行改成POST 并加上url
POST http://111.198.29.45:43568/?a=1 HTTP/1.12.POST头部数据格式声明
Content-Type: application/x-www-form-urlencoded3.post变量b=2
b=2即可得到flag flag:cyberpeace{2ba85496b616b36d30c6ad92ff515de3}
题目链接:http://111.198.29.45:49016/ 题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。 Robots.txt 是存放在站点根目录下的一个纯文本文件,并且该文件是可以通过互联网进行访问的。虽然它的设置很简单,但是作用却很强大。它可以指定搜索引擎蜘蛛只抓取指定的内容,或者是禁止搜索引擎蜘蛛抓取网站的部分或全部内容。 所以我们在url后面加上robots.txt即可查看里面的内容
http://111.198.29.45:49016/robots.txt可以看到有个f1ag_1s_h3re.php,打开即可看到flag
http://111.198.29.45:49016/f1ag_1s_h3re.phpflag:cyberpeace{325d76a58b7efde0ecc0976f86b30bbd}
题目链接:http://111.198.29.45:57896/ 题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧! 备份文件一般是如下格式 .rar .zip .7z .tar .gz .bak .swp .txt .html 一一尝试可以知道index.php的备份文件名为index.php.bak .bak是备份文件,为文件格式扩展名,这类文件一般在.bak前面加上应该有原来的扩展名比如windows.dll.bak,或是windows_dll.bak,有的则是由原文件的后缀名和bak混合而成
http://111.198.29.45:57896/index.php.bak用记事本打开即可得到flag flag:cyberpeace{b6dc423e4101660b2193b6d780a0b07b}
题目链接:http://111.198.29.45:59633/ 题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’ 点开链接 按F12,在控制台中输入
alert(document.cookie)弹出cookie 提示有个cookie.php
http://111.198.29.45:59633/cookie.php进入后提示看http响应 抓包,响应头中找到flag flag:cyberpeace{4488ed459f0ab920544fc0430c430ccb}
题目链接:http://111.198.29.45:38783/ 题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢? 我们按F12 在左下角的选取按钮选取中间无法点击的flag按钮,在查看器中查看代码 双击标签中的disabled=" "将其去掉,中间的按钮就可以点击了,点击之后即可得到flag flag:cyberpeace{e1cf3688c97e71e5dffb2614e037afc7}
题目链接:http://111.198.29.45:35187/ 题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} ) 进入后,要求输入密码,随便输入一个,提示错误 查看源码
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) );简单分析之后我们发现,在dechiffre()函数中,并没有使用到我们输入的pass_enc变量,也就是说我们无论输入的密码是多少,输出的都是一样的 其实输出值就是 pass="70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65" 转换成ascii码
F,A,U,X, ,P,A,S,S,W,O,R,D, ,H,A,H,A我们看到下面有一串
"\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"我们将其转化成十进制
"55,56,54,79,115,69,114,116,107,49,50"跟变量pass很像,我们将其转化成ascii码
"7,8,6,O,s,E,r,t,k,1,2"根据题目描述flag格式为Cyberpeace{xxxxxxxxx},提交后提交成功 flag:Cyberpeace{786OsErtk12}
题目链接:http://111.198.29.45:52190/ 题目描述:X老师告诉小宁其实xff和referer是可以伪造的。 进入后提示ip地址必须为123.123.123.123 抓包,修改http头
X-Forwarded-For:123.123.123.123又提示我们必须来自https://www.google.com 修改头
Referer:https://www.google.com在响应里看到flag flag:cyberpeace{f02319a2ebf8ab3e562edab690a71575}
题目链接:http://111.198.29.45:49429/ 题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。 我们随便输入一个账号密码 提示我们应该用admin为账号登陆 在源码中我们可以看到提示需要字典,我们可以猜测这道题需要暴力破解 抓包将password设为变量,载入字典,进行爆破(字典不需要太复杂,这里密码非常简单) 这里可以看到密码123456返回的长度跟其他密码不一样 我们用123456作为密码进行登录,得到flag flag:cyberpeace{9ea02cbfbf8c167a3e0520bcb213d9fc}
题目链接:http://111.198.29.45:58974/ 题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。 可以看到一句话木马中口令为shell 用菜刀连接
http://111.198.29.45:58974/index.php可以看到一个flag.txt,打开即可得到flag
flag:cyberpeace{74fea3cfddba6bfdc6bfba5b38300b08}
题目链接:http://111.198.29.45:39476/ 题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。 我们ping一下这个题目的地址,可以看到下面的命令
ping -c 3 111.198.29.45根据下面返回的内容,我们大概可以猜测系统是linux系统,我们尝试在命令后面拼接 ls,查看下目录文件
111.198.29.45&&ls /发现是可以在后面拼接命令的,依次打开我们可以在home文件夹中找到一个flag.txt的文件,打开后即可得到flag
ping -c 3 111.198.29.45&&ls /home ping -c 3 111.198.29.45&&cat /home/flag.txtflag:cyberpeace{d8580c990161b96eb46aa5ce2ce51b6c}
题目链接:http://111.198.29.45:43030/ 题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 php代码如下
<?php show_source(__FILE__); include("config.php"); $a=@$_GET['a']; $b=@$_GET['b']; if($a==0 and $a){ echo $flag1; } if(is_numeric($b)){ exit(); } if($b>1234){ echo $flag2; } ?>分析下代码,要求输入a,b,要求a==0而a不为0,这里我们可以令a=0+任意字母 b不能为数字且b要大于1234,令b=12345+任意字母
http://111.198.29.45:43030/?a=0a&&b=12345aflag: <?php show_source(FILE); include(“config.php”); a = @ a=@ a=@_GET[‘a’]; b = @ b=@ b=@_GET[‘b’]; if($a==0 and $a){ echo KaTeX parse error: Expected 'EOF', got '}' at position 8: flag1; }̲ if(is_numeric(b)){ exit(); } if($b>1234){ echo $flag2; } ?>
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
