CTF一开始该怎么学习WEB方向?

CTF中的Web题型,就是给定一个Web网站,选手要根据题目所提示的信息,找到网站上的flag字符串。

我们需要掌握一些基本的语言,像PHP、Python、JavaScript等

Web框架:ThinkPHP、Flask等

 

在学习之前我们需要知道一些常识,也是最基本的常识--源代码

这是我们未来需要面对的最多的东西,有了源码大部分的题目都能找出漏洞

当然我们也不是经常能够遇到直接把源码放在明面上的情况,首先教大家怎么查看前端源码

查看源代码:

1.f12

67998fc55c0d4da898621a8a3dc70798.png

这样打开的就是源码,很多时候这个源码里面会藏着提示

2.鼠标右键查看页面源代码

1c31a4e83f5b49b883a863fd38f86089.png

练习题目1.攻防世界--view_source

robots协议

之后就是我们需要了解的robots协议了,robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。

怎么判断有没有robots协议呢?很简单,我们只需要加在URL编码后面就可以查看了,当然也可以用扫描工具对网页扫描观察是否有文件泄露

扫描工具:dirsearch(csdn搜索下载)

御剑(同样csdn搜索)

练习题目2.攻防世界--robots

第三个要讲的就是cookie

cookie

如果把人体比作一个web系统的话,cookie、session和token就好像人体的经络和血管一样,而web系统中的数据,就好像人体的血液一样。血液依靠着血管在人体内流动,就如数据根据cookie和session机制在web系统中流动一样。而web系统开发者就好比一个医术精湛的医生,医生需要十分清楚人体的经络和血液流向才能对症下药,而web系统开发者需要十分清楚cookie、session机制,才能迅速解决疑难BUG,开发出更好的web系统。

通俗来讲,我们打开计算机访问一个网页时就会有cookie产生,这是干嘛用的呢?不知道大家有没有偷偷玩电脑时害怕被发现就直接关掉网页的时候,我们第二次打开网页时就会发现我们居然还是之前那个界面,甚至之前浏览的文章或者视频都还是一模一样的。这就是cookie的作用--供电脑记录识别用户

我们每打开一个网页时就会产生一个独一无二的cookie,当浏览器第二次访问该web服务器时会自动的将该cookie回传给服务器,来实现用户状态跟踪

 

但是一般情况下,我们怎么查看cookie呢?

我们有两种方法

1.f12点击应用界面就会出现cookie,还可以对cookie的值和名进行修改

992a6fd1296c470f9c5e75803d66d914.png

 

2.抓包

什么是抓包?

抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

1.从功能测试角度,通过抓包查看隐藏字段

Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,防网络爬虫,以及一些其他用途。这些隐藏字段在界面上都看不到,如果想检测这些字段,就必须要使用抓包工具。

我们通常使用的抓包工具是Burpsuite(可以csdn查看怎么下载和使用)

 

练习题目3.攻防世界cookie

 

第四个,我们在做题时会遇到需要像网站发送信息的情况

这就有两种方法—-GET 和 POST 其实都是 HTTP 的请求方法

请求方法

1.get方法

GET

请求指定的页面信息,并返回实体主体。

我们平时在网站url编码上修改的情况就是属于用get方法

50414bacaa634268b4e413eb3c0dd28c.png

2.post方法

POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

这道题就是需要用get和post两种方法

我们需要post上传“id”参数,还要get上传“json”参数,而且会检测经json_decode编码之后的值。

我们可以用插件–hackbar(该插件的作用是为网站提供上传的路径)

如下图:

54fa90db342f49449acea4d8daec7386.png

 

打开插件之后我们的第二步就是get请求

第三步就是post请求

在火狐上下载插件如图:先点击设置,选择扩展和主题

296164139b1a4302a880e9da34c28dc1.png

259936bd5ca547b5b66315bea394f27f.png

练习题目4.攻防世界-get_post

db2db36acfcf40d9bdb463a3a4e0bdc2.png

我们只需要这样

fedf38c5588f4ba4b8438482cebc70b8.png

记得GET请求要加上问号

d8c14f0570a44bba834c0ea224639488.png

然后添加b=2

练习题目5–[SWPUCTF 2021 新生赛]easy_md5

6ab63763f3a14b73b5016a04b52e370f.png

我们来分析一下这个题目

首先需要用get请求和post请求上传两个参数,参数值暂时没有显示

继续往下面看464fcd47438548f18f00bb0a9066e658.png

这个是重点,第一:name参数和password参数不能相等。第二:name参数和password参数需要检测MD5值(两个参数的MD5值必须一致)

我们的思路是这样,我们定义的两个参数必须要不等,但是MD5加密之后又是相等的

方法有二

1.利用MD5不能处理数组的特性--任何数组进入判定之后都会是0!

那我们如果定义两个参数为不同的数组,是不是就可以绕过了?

如:

c237bc676cf64a44bb1a26de00d53bca.png

第二种方法就是,我们需要知道,有一些0e开头的字符串同样是MD5加密之后为0的

随便上网找找

613f0f5bac20491ba915283ac426f86d.png

ef21f540e4db44d7b71134735eac3107.png

文件上传

最后要讲的就是文件上传了,文件上传一类的题目思路比较清楚--我们目标就是要往网站上放入木马,但是别人肯定不会这么简单就让我们上传成功木马呀,怎么让木马绕过检测就是我们需要做的

学习这类的题目需要多搜索,此外还要了解一句话木马原理,最重要的是,我们如果上传成功之后怎么查找我们需要的东西呢?

这个时候就需要shell工具了--(中国蚁剑、菜刀、冰蝎、哥斯拉等等,这些都可以在csdn或者GitHub上下载)

练习题目有以下

(1)攻防世界平台--webshell

(2)NSSCTF平台--[SWPUCTF 2021 新生赛]caidao

(3)BUUCTF平台--[极客大挑战 2019]Knife

(4)BUUCTF平台--[极客大挑战 2019]Upload

(5)BUUCTF平台--[ACTF2020 新生赛]Upload

 

这些是我们新手至少需要掌握的东西,并不是只有这些,路漫漫其修远兮,要想精通web需要走的路还很长......

 

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值