攻防世界 web 新手题小结

01view_source

方法:在下用的firefox,鼠标右键可查看页面源代码,试了试不行。那么F12,即可得到。
收获:鼠标右键不能用,与前端函数有关,在该页面中我们可以发现有这两个函数,

1. document.oncontextmenu=new Function("return false") //是右键菜单禁用;
2. document.onselectstart=new Function("return false") //是禁止选中页面上的内容;
3. document.onselectstart=new Function("return false")//是禁止复制在页面上选中的内容;(补充)

 

02get_post

HTTP通常的两种请求方法是get和post.

方法一:首先进入容器会看到

那么就在url后加上?a=1,然后得到

这时有三种方法:1.用firefox插件Max HacKBar,攻防世界 web 新手题小结_第1张图片,得到flag;

方法二:用burp抓包,send to repeater,加上b=2 send,得到flag;

方法三:不用插件,,某位大佬的。在查看器中进行如图修改,即可得到flag。

 

03robots

方法:在url后加上robots.txt,会得到,然后访问flag_1s_h3re.php,即可得到flag。

收获:当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,那么搜索机器人就沿着链接抓取。并且,robots.txt必须放在一个站点的根目录下,而且文件名必须是小写。robots.txt就是告知搜索引擎哪些是允许访问的,哪些是不想被搜索引擎收录的。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。但是,robots.txt不是防火墙,不能阻止访问。

 

04backup

方法:在url后加上Index.php.bak,访问,在f12中,即可得到flag.

收获:常见的备份文件后缀名有:.git  .svn  .swp  .bak  .bash_history  .~

  php的备份有两种:*.php~和*.php.bak。  这道题也可以用py脚本解决,扫目录,即可得到地址。也可以用御剑扫描进行解决。

 

05cookie

分析:攻防世界 web 新手题小结_第2张图片首先会看到这个,然后f12查看,cookie,攻防世界 web 新手题小结_第3张图片,然后就在url后加上cookie.php,访问,看到攻防世界 web 新手题小结_第4张图片,提示我们在响应头里。

方法一:burp抓包,并send to repeater,而后send,在响应头里即可得到flag。攻防世界 web 新手题小结_第5张图片

方法二:firefox,访问http://220.249.52.133:54804/cookie.php,f12,在网络一栏中,可看到访问cookie.php的数据包,攻防世界 web 新手题小结_第6张图片

收获:Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。

 

06disabled_button

方法一:打开后,发现攻防世界 web 新手题小结_第7张图片,f12,在查看器一栏中,将disabled改为abled或直接将disabled=""删除,然后按钮就可以点了。点击即可得到flag.

方法二:审计form表单代码,post传值auth=flag,也可以得到flag.攻防世界 web 新手题小结_第8张图片

(但是我在用Burp实现的时候却无法成功,如下图),如果哪位大佬懂的话,希望在评论区指点小弟下。攻防世界 web 新手题小结_第9张图片

收获:html的相关标签及相应的属性

 

07weak_auth

题目简介:打开后攻防世界 web 新手题小结_第10张图片,如图

需要输入账号和密码,然后随便输入,会出现弹窗(please login as admin)在f12发现

方法:burp爆破,配置好之后,打开,抓包,send to Intruder,攻防世界 web 新手题小结_第11张图片

然后设置爆破点为password:将admin两边的$去掉,将password的值两边加上$.

攻防世界 web 新手题小结_第12张图片

加载字典,load加载字典,然后开始爆破

攻防世界 web 新手题小结_第13张图片

发现,密码为123456时length不一样,于是在响应包里得到flag。

攻防世界 web 新手题小结_第14张图片

收获:burp的爆破功能,以及用Python,c++创建字典的方法.


08command_execution

题目:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

waf,web应用防火墙,Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。所以本题环境没有waf。

攻防世界 web 新手题小结_第15张图片

方法一:1.在文本框内输入127.0.0.1 | find / -name "flag.txt" ,查找flag所在位置

2.在文本框内输入 127.0.0.1 | cat /home/flag.txt 可得到flag

方法二:1.在文本框中输入127.0.0.1 && ls 查看当前目录下的文件

攻防世界 web 新手题小结_第16张图片

2.输入127.0.0.1 && ls../ 查看上一级目录

攻防世界 web 新手题小结_第17张图片

3.输入127.0.0.1 && ls../../  查看上一级目录

攻防世界 web 新手题小结_第18张图片

4.输入127.0.0.1 && ls../../../  查看上一级目录,发现有个home的文件,不妨打开看看

攻防世界 web 新手题小结_第19张图片

5.输入127.0.0.1 && ls ../../../home 查看该文件,发现flag.txt

攻防世界 web 新手题小结_第20张图片

6.输入127.0.0.1 && cat ../../../home/flag.txt 打开该文件,

攻防世界 web 新手题小结_第21张图片

方法三:requests库,这是xctf平台某位大佬的解题方法。同时requests库的相关使用参见这位大佬的requests库基本使用   和这位大佬的Python-第三方库requests详解    ,个人感觉收益颇丰。

攻防世界 web 新手题小结_第22张图片

收获:

| 的作用为将前一个命令的结果传递给后一个命令作为输入

&&的作用是前一条命令执行成功时,才执行后一条命令

还有相关指令要学习,find ,cat ,ls  等指令。

 

09simple_php

1234){
    echo $flag2;
}
?> 

题目:打开后出现如下代码,

进行代码审计:1.get传参给$a和$b,如果$a==0 且 $a ,则返回$flag1;

2.is_numeric()函数,如果$b是数字或者数字字符串,则返回ture,exit()执行;否则,并且$b>1234

,则返回$flag2; 

3.这里要注意一点,php语言是弱类型比较,php中有两种比较符号

=== 会同时比较字符串的值和类型;

== 会先将字符串换成相同类型,再作比较,属于弱类型比较;

所以如果$a=string(string是任意字符串),则‘string’==0为真;

$b=12ss,则‘12ss’==12为真,

方法一:返回flag1.   url后加上index.php?a=string (string为任意字符串),得到flag1的一半,还有半截未显示出来

1234){
    echo $flag2;
}
?>

Cyberpeace{647E37C7627CC3E401

在url后加上index.php?a=0&b=1235a,得到flag1的另一半(别问我咋知道的,瞎试试出来的,现在还没搞懂,懂的大佬可在评论区指点一下)

1234){
    echo $flag2;
}
?>

9EC69324F66C7C} 

方法二:返回flag2.  url后加上index.php?a=string&b=1235a (string为任意字符串),得到flag2.

1234){
    echo $flag2;
}
?>

Cyberpeace{647E37C7627CC3E4019EC69324F66C7C} 


10xff_referer

题目:描述及打开后看到的

攻防世界 web 新手题小结_第23张图片攻防世界 web 新手题小结_第24张图片

方法一:burp抓包,send to repeater,将X-Forwarded-For添加进去(注意位置),得到如下图

攻防世界 web 新手题小结_第25张图片

由图知,https要设置,于是再将Referer:https://www.google.com 插入进去,得到flag.

 

 攻防世界 web 新手题小结_第26张图片

 

收获:

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的.


11webshell

这个题的相关资料:

新手区webshell


12simple_js

题目:打开后,就让我输密码,随便输入,出现弹窗,查看源代码。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) );

 开始代码审计:简化后,就是有个16进制的字符串"\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",将其转为10进制,然后根据ASCII码表对应的字符进行转化,得到flag。

方法:python

攻防世界 web 新手题小结_第27张图片

收获:

1.fromCharCode()函数

var n = String.fromCharCode(65);
输出结果: A

2.16进制字符串转10进制,python直接输出

3.数字转字符串,用遍历,chr()函数:将数组转为相应的ASCII码字符。

 

 

 

 

你可能感兴趣的:(CTF刷题记录,web)