攻防世界之Web新手练习篇

前言:
天行健,君子以自强不息。
地势坤,君子以厚德载物。
           ——《周易》

第一次接触CTF比较晚,学期已过近半,第一次做题就是在攻防世界,这里题目适合刚接触的萌新。写此篇博客,以为纪念。

首页


未完待续…

View_source

有四种方法:
第一种:下一个火狐浏览器(以后使用BurpSuite,Hackbar等工具也比较方便),按下F12在页面下方就会出现源代码。
第二种:在url前面加上"view-source:"(双引号内的内容),按下回车即会显示源代码页面。
第三种,按下右键,找到查看源代码(Ctrl+U),点击即可看到网页代码。但此题说了不能按右键,尝试也未果,这种方法就不用了。
第四种:打开命令行窗口(先Win+R,再输入cmd,回车即可进入),输入【curl http://61.147.171.105:62119/】(中文括号【】内的即为命令,后面是自己容器的地址,需自己复制自己的并粘贴过去),即可拿到flag
在这里插入图片描述

robots

先了解一下robots协议:Robots协议用来告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取;
看到页面一片空白,题目名字便是提示,在URL后面加/robots.txt(http://61.147.171.105:59224/robots.txt),
访问robots.txt发现f1ag_1s_h3re.php文件
得到提示,再去访问url/f1ag_1s_h3re.php,得到flag。

访问f1ag_1s_h3re.php文件
一般这种访问不会直接输出flag,而要查看源代码才会出现。还有一些访问文件内容的手段,比如文件上传,命令执行等等。

backup
返回首页
bak文件是网页上的备份文件(backup:备份) 题目里直接问道“你知道index.php的备份文件名吗?”,答曰:“知道,为index.php.bak。”访问得到一个下载文件,用记事本打开即可拿到flag。

在这里插入图片描述

cookie
返回首页
先通过提示在储存->Cookie中发现cookie.php文件的存在,访问(http://61.147.171.105:62539/cookie.php)得到下一步提示——查看http response

在这里插入图片描述
接下来有三种方法:

  • 第一种方法:

所需工具:火狐浏览器,BurpSuite
工具学习:(你需要搜索的有BurpSuite安装配置教程BurpSuite破解教程BurpSuite抓包配置BurpSuite发包,BurpSuite抓本地localhost的包,还有一篇优质文章)(注:这四篇可能不是本人当时找的,所以有可能失败,如果尝试失败建议自己搜索其他的文章,或者博客私信本人,总结思路就是下载jdk并配置Java环境,下载BurpSuite并放在合适目录,下载破解的两个jar文件并放在BurpSuite一目录下 --> 破解BurpSuite --> 抓包配置,后面本人还遇到两个问题,一是需要jdk更新到jdk18,二是bat启动文件的配置,用github原文的已经失效了,会报错,后经不懈搜索找到解决方法,需要帮助请联系本人)
在这里插入图片描述
注意Firefox配置手动代理之后记得改回来,要不然访问不了网站了。

  • 第二种方法:
    思路:使用Curl命令
    在命令行窗口执行【curl -I http://61.147.171.105:62539/cookie.php】,拿到flag
    在这里插入图片描述
    第三种方法:
    这篇博客的博主直接在NetWork中查看响应,但我找了发现报错(NotFound),看起来不太可行。

推荐使用第一种方法,网安学习之中没有捷径,需脚踏实地。不积跬步无以致千里,不积小流无以成江海。

disabled_button
返回首页
把disabled删掉再按F5刷新,flag就可以点得了了。现在稍稍能理解其中技术了,JavaScript代码的一个按钮功能实现。

在这里插入图片描述

weak-auth
返回首页
考察的是密码账号爆破 可以在网上找几本字典,https://www.somd5.com/download/dict/,(好吧,这里面的对这题无用) 先瞎试了几次。。。 第一步send to Intruder

在这里插入图片描述
第二步选择爆破方法,爆破点(用§§括起来的)
在这里插入图片描述
第三步,转到payloads设置字典,即爆破内容
设置完username后再设置password,都差不多
在这里插入图片描述
在这里插入图片描述
第四步,爆破中,我们已经得到了提示——Please login as admin(其实从刚开始随便输入几个字母就有)
在这里插入图片描述
现在就只是密码错误了,于是回到前面改username=admin,然后使用Sniper方法,再转到payloads进行爆破内容设置
在这里插入图片描述
最后一步,不断更换字典尝试(因为之前密码从10000到100000爆不到,所以就换了本字典),爆破得flag!
在这里插入图片描述

simple_php
返回首页

使用工具:Firefox浏览器,Hackbar

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];//通过GET方法传入a的值
$b=@$_GET['b'];//通过GET方法传入b的值
//'=='弱比较,即null,0x,0a这些都会被认为'=='0,
//而这里直接传入a=0的话,and表示逻辑与,a=0被认定为false就不能通过if的判断
if($a==0 and $a){
    
    
    echo $flag1;
}
//is_numeric()函数绕过,可以使用数组绕过,字母绕过,编码绕过,可以去搜一些文章学习php is_numeric()函数绕过
//b[]=1235,b=1235a,b=1235%1,b=1235>1,这些都能绕过
if(is_numeric($b)){
    
    
    exit();
}
if($b>1234){
    
    
    echo $flag2;
}
?> 

还要学习一下GET和POST传参,GET传参形式是直接在url后面加{/?参数名1=&参数名2=}(大括号里面的内容),比如这题,{http://61.147.171.105:56165/?a=0a&b=1235%1},这样就能传入参数,获得flag。
POST传参则需要用到工具Hackbar,Hackbar的安装配置:
途径一:Hackbar解决证书收费问题(专业级):Firefox-Hackbar-2.2.9-学习版 - 江南小虫虫的博客 (fengwenhua.top)
途径二:Hackbar安装,直接下载zip压缩包,再在插件中添加xpi附件:https://github.com/Mr-xn/hackbar2.1.3
(本人现在用的好像就是第二种途径获得的,不过要记得取消掉Hackbar的更新,否则又会出现需要你注册的情况)
在这里插入图片描述

get_post
返回首页
使用工具:Firefox,Hackbar

使用Hackbar进行GET传参和POST传参这种小技巧,相信聪明的你已经通过这些文章1文章2文章3学会了。(文章2,3是一点点扩展)
我们这里使用BurpSuite进行传参
第一步,抓包,并send to repeater
题目已经提示我们用GET方法传入一个名为a,值为1的变量,我们就在箭头标识的这里加上{?a=1},表示就是GET传入,并且得到新的提示——再用POST方法传入一个名为b,值为2的变量
在这里插入图片描述
第二步,POST传入b
先把左上角的GET改为POST,然后在间隔一行的这一行输入b=2,再点Send发送,但并没有出现flag,这里也是比较奇怪。
在这里插入图片描述
不信邪的我,回到Firefox,先提前传入好a=1,b=2,然后点execute执行,这个时候被bp拦截的同时会出现参数名,然后再send to repeater,再send,发现出现了flag
在这里插入图片描述
经过对比,发现前者少了一些信息,没有Content-type。Content-type学文件包含的时候要改类型,比如改成text/plain;或者改成image/jpg;,这样就允许传入代码、图片这些,绕过了前端。
在这里插入图片描述
建议遇到需要get,post传参的题目,可以先在hackbar里面传好参数,再点击的同时被bp抓包,会出现模板之类,就避免了手动添加参数名这样情况出现,只需要修改参数内容即可。

xff_referer
返回首页

使用工具:Firefox,BurpSuite
先打开环境,直接告诉我们"ip地址必须是123.123.123.123",所以我们需要伪造ip地址,
方法二:利用Hackbar添加head。
先点LoadURL,出现一行行请求头,再填Add Header,下面出现一行,里面输入{X-Forwarded-For: 123.123.123.123}(大括号"{}"里面的内容),(注意’:'和后面地址直接要空一格,具体原理俺不懂…不过可以看看一些伪造ip的方式:博客1
在这里插入图片描述
然后出现提示——“必须来自https://www.google.com”,这是在暗示我们需要伪造Referer请求头,在Hackbar中添加Referer,内容为{https:www.google.com},按执行execute,拿到flag。
在这里插入图片描述
方法一:在BurpSuite里面伪造请求头。
抓包——>Send to repeater,在请求包中间加入{X-Forwarded-For: 123.123.123.123}。(这里注意是在中间,如果在最底下这一行添加的话就会不起作用)
在这里插入图片描述
得到提示再修改Referer,拿到flag。
在这里插入图片描述
方法三:在命令行窗口中使用curl命令来获取flag。
学习curl命令网站:
网站一(博客)网站二(腾讯云)

获得Referer提示

curl  http://61.147.171.105:64406/ -H "X-Forwarded-For: 123.123.123.123"

获得flag

curl  http://61.147.171.105:64406/ -H "X-Forwarded-For: 123.123.123.123" --referer "https://www.google.com"

拓展学习文章:
https://www.freebuf.com/articles/database/269712.html

分享一首喜欢的诗
           《离思五首·其四》
              元禛
曾经沧海难为水,除却巫山不是云。取次花丛懒回顾,半缘修道半缘君。

command_execution
返回首页

先推荐几篇学习ping命令执行漏洞的文章:文章1文章2文章3文章4
(本人不太会这些,,,看大佬们写的学习叭)
首先执行{127.0.0.1;ls /},即查看根目录下的文件名,
在这里插入图片描述
然后,就一个一个试,(就是ping得太慢了,不知道还有没有其他的方法)比如想查看usr目录下的文件名,{127.0.0.1;ls /usr -al},最后不断尝试,终于发现在/home下有一个flag.txt的文件
在这里插入图片描述
执行命令{127.0.0.1;tac /home/flag.txt},查看源代码即可得flag。
(这题任何过滤都木有,以后遇到其他有过滤的题目可以看看上面几篇文章学习,有推荐的文章欢迎留言评论一起学习 ^ _ ^)
在这里插入图片描述

simple_js

(环境暂时有点问题,打不开。。。
博主目前在配置JavaScript,正在handly study JavaScript,希望给各位支持的同志好的解题过程,暂时先看这位博主的文章叭,若有帮助,莫忘了给这位博主点赞,…(* ̄0 ̄)ノ)

返回首页
php2
返回首页
使用工具:Firefox,御剑,Hackbar

御剑(本人目前所用,看这篇博客找的,数量超大,建议还是换别的目录扫描工具,例如wscan,dirsearch等等):
链接:https://pan.baidu.com/s/1Bn7GtWb7AStcjzVahFOjSQ
提取码:zkaq
(下载后解压,会出来一个御剑后台扫描工具.exe和御剑配置文件的压缩包,再把这个压缩包也解压了。然后打开御剑后台扫工具.exe随便输入一个网址(以百度为例:www.baidu.com)点开始扫描,然后再取消扫描。回到御剑后台扫描工具.exe这个文件夹会发现多出来一个叫配置文件的文件夹,再把刚刚从御剑配置文件解压出来的各种.TXT都复制到这个新出现的配置文件这个文件夹中。
然后把御剑后台扫描工具.exe关掉,再重新打开就可以正常使用了)

先打开环境,看提示“Can you anthenticate to this website?”,看半天不明白啥意思,拿御剑扫描试试,发现/index.phps目录,注意,一般的御剑是扫描不到的,需要自己添加字典,添加方法很容易,在御剑的files目录下有很多txt文件,新建一个或者直接在里面添加"/index.phps"也可以,这样就可以扫得到。
在这里插入图片描述
然后再访问/index.phps,这里需要查看源代码才能看到完整源码。

<?php
if("admin"===$_GET[id]) {
    
    
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
//对传入的参数id进行第二次url解码,第一次url解码浏览器帮我们自动完成了
if($_GET[id] == "admin")
{
    
    
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
  //这里就是输出flag的地方,但并未看到明显的flag文件,看上去就是仅仅输出xxxxxxx
}
?>

通过分析,我们需要GET传入一个参数id,使其等于admin,而不全等于admin,就是弱比较,于是构造payload:{?id=%2561dmin},(%25——%,%61——a,%2561经过一次解码得到%61,第二次url解码就是’a’啦),得到flag!
在这里插入图片描述


//因学业上的task较多,可能会暂停一段时间更新

猜你喜欢

转载自blog.csdn.net/m0_63944500/article/details/127930057