xctf攻防世界—Web新手练习区 writeup
xctf攻防世界—Web新手练习区 writeup
- view_source
- get_post
- robots
- backup
- cookie
- disabled_button
- simple_js
- xff_referer
- weak_auth
- webshell
- command_execution
- 知识点:命令执行
- simple_php
view_source
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
进入页面后显示:“FLAG is not here”,鼠标右键菜单栏不能正常触发,通过在题目地址前添加
view-source:访问网页源码,得到flag:
<h1>FLAG is not here</h1> <!-- cyberpeace{dbc38d67602cd1dfa7f62bdd90824fc7} -->
get_post
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
进入页面后显示:“请用GET方式提交一个名为a,值为1的变量”,在地址栏输入
?a=1通过GET方式传递参数;
得到新的提示:“请再以POST方式随便提交一个名为b,值为2的变量”,通过Google Chrome的插件HackBar通过POST方式传递参数:
b=2
得到flag:
cyberpeace{0f013ed4965abfc7d2f6100703245650}
robots
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
访问网页显示为空白,尝试查询robots协议即
/…题目地址…/robots.txt:
User-agent: * Disallow: Disallow: f1ag_1s_h3re.php
继续访问
/…题目地址…/f1ag_1s_h3re.php,得到flag:
cyberpeace{a80e5bcf6423bc3fe5707a10c2676c3b}。
backup
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
进入页面后显示:“你知道index.php的备份文件名吗?”
根据提示,下载index.php的备份文件,即访问
index.php.bak,下载到备份文件后放入HEX Fiend工具中打开,在结尾得到flag:
cookie
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
进入页面后显示:“你知道什么是cookie吗?”,通过Burp Suite抓取数据包,得到提示:
访问
cookie.php,得到新的提示:“See the http response”,使用Google Chrome插件HTTP Headers查看,得到flag:
disabled_button
难度系数: 1.0
题目来源: Cyberpeace-n3k0
3ff7
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
提示为前段知识,查看网页源码:
<input disabled class="btn btn-default" style="height:50px;width:200px;" type="submit" value="flag" name="auth" />
将“<input>”标签中的
disabled属性删除掉,得到flag:
cyberpeace{3f9351e76f3719a11933dabb19cd8b9c}
simple_js
难度系数: 1.0
题目来源: root-me
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
进入网页后需要输入密码:
密码输入错误,查看网页源码:
<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>
将
dechiffre中的十六进制转换为字符串,得到
55,56,54,79,115,69,114,116,107,49,50,对照ASCII码表转换为字符串:
786OsErtk12,添加正确格式即为flag。
xff_referer
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
进入页面后显示:“ip地址必须为123.123.123.123”,通过Google Chrome插件ModHeader添加请求头信息:
X-Forwarded-For: 123.123.123.123,刷新页面得到新的提示:必须来自https://www.google.com,继续添加请求头信息
Referer: https://www.google.com,刷新页面得到flag:
cyberpeace{68d1f3f8fb33701e06ee0c5db9895426}
weak_auth
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
尝试输入账号密码登陆:
根据提示随手设置的密码,感觉为弱密码爆破,使用Burp Suite抓取登陆时的数据包:
Send to Intruder后,选择攻击模式为
Sniper修改需要暴力破解的变量:
将弱类型密码字典粘贴到Payload Options:
开始暴力破解攻击,通过长度判断是否成功登陆:
得到登陆密码:
123456,登陆后得到flag:
cyberpeace{681a629f7ffb7f44b6685750fdeda872}
webshell
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
一句话已经给出,使用中国蚁箭,添加目标信息:
在文件列表中发现
flag.txt,访问该文件得到flag:
cyberpeace{94155f1370b8c864793a8a87dd617af4}
command_execution
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
题目名为控制台命令执行先尝试输入本地IP:
ping -c 3 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.088 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.052 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.038 ms --- 127.0.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1998ms rtt min/avg/max/mdev = 0.038/0.059/0.088/0.022 ms
得到了输入的命令:
ping -c 3:对输入的地址检查三次是否连通,尝试是否有访问文件的权限:
127.0.0.1 | ls:
ping -c 3 127.0.0.1 | ls index.php
有访问目录的权限,继续查询主目录,在
home文件目录下发现:
flag.txt:
ping -c 3 127.0.0.1 | ls ../../../home/ flag.txt
尝试打开
flag.txt,输入控制台命令:
127.0.0.1 | cat ../../../home/flag.txt,得到flag:
cyberpeace{9a27a9c1e0ac69bd09ddf1d1557ea2aa}
知识点:命令执行
Windows或Linux下:
command1 && com 8000 mand2:先执行command1后执行command2;
command1 | command2:只执行command2;
command1 & command2:先执行command2后执行command1
simple_php
难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁听说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; } ?>
分析代码:通过GET方式传入变量
a和变量
b的值,其中需要a=0但有又不能为0,b不能为纯数字但药大于1234;
通过“==”比较漏洞我们可以绕过比较,即在比较时,PHP会把变量值先转换为相同类型再进行比较,在地址栏中构造如下传参:
?a=0c&b=1235c,访问便得到flag:
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
- xctf攻防世界web新手练习区--write up
- XCTF攻防世界web新手练习_ 5_simple_js
- XCTF攻防世界web新手练习_ 4_disabled_button
- XCTF攻防世界web新手练习_ 2_backup
- XCTF攻防世界web新手练习_ 10_simple_php
- 攻防世界-web writeup(xctf)
- XCTF 攻防世界 web 新手练习
- XCTF攻防世界web新手练习_ 7_weak_auth
- XCTF攻防世界web进阶练习_ 4_upload
- XCTF攻防世界web进阶练习_ 1_NewsCenter
- XCTF攻防世界web进阶练习_ 3_unserialize3
- XCTF攻防世界web进阶练习_ 2_lottery
- XCTF攻防世界web进阶练习_ 5_mfw
- web萌新ctf练习--攻防世界--mfw
- 攻防世界web新手之simple_js
- CTF-练习平台 writeup web
- 攻防世界web新手之disabled_button
- 攻防世界web新手之buckup
- XCTF-攻防世界-新手训练-12-maze
- BugkuCTF - 练习平台 - WEB——Writeup