CTF萌新入坑指南(web篇)(持续更新)

   日期:2020-09-29     浏览:224    评论:0    
核心提示:ps:其实在写这篇入坑指南的时候内心还是十分挣扎的,毕竟大佬太多而我自己太太太太菜,然鹅我也不好拒绝温柔善良的郑童鞋的邀请,因此这篇文章只面向最最最新的萌新,各位大佬请自行忽略前言 web在ctf里面占到的比重还是蛮大的,从国内有ctf赛事以来,web就一直是各 路出题人的宠儿,就比如说前段时间的某次分区赛初赛题目构成是7pwn 7web 1re 1misc,虽然在我看来这个题目分配过于偏激且离谱了,但是足以看出web 在ctf中的重要性,线下赛pwn佬可能更加关键,不过web手对于每个队伍都是

ps:其实在写这篇入坑指南的时候内心还是十分挣扎的,毕竟大佬太多而我自己太太太太菜,然鹅我也不好拒绝温柔善良的郑童鞋的邀请,因此这篇文章只面向最最最新的萌新,各位大佬请自行忽略

前言

 web在ctf里面占到的比重还是蛮大的,从国内有ctf赛事以来,web就一直是各
 路出题人的宠儿,就比如说前段时间的某次分区赛初赛题目构成是7pwn 7web 
 1re 1misc,虽然在我看来这个题目分配过于偏激且离谱了,但是足以看出web
 在ctf中的重要性,线下赛pwn佬可能更加关键,不过web手对于每个队伍都是不
 可或缺的,总体来说基础web题的难度不是很大,但是内容很多,所以想要以
 web作为主项的小伙伴一定要加倍努力奥。

准备工作

web方向的工具还是很多的,这里推荐几个常用的神器,安装教程和环境配置以后有机会会出几篇,等不及的小伙伴建议百度哦

burp suite

别问,问就是神器,用过的都说好!
(什么?不用burp?我的天哪 真有自断一臂的web选手吗)

burp 是一款web领域的跨平台工具,集成了代理、重放、暴力破解、解码等等多个模块,模块之间共享http消息框架来实现共享信息,大大提高了解web题目的效率。

条件:需要预装java环境
下载地址:get到burp的途径有两种,一种是官网,官网的burp有两种版本,一个社区版一个专业版(pro),pro的功能更加强大当然也需要付费,具体费用是199还是299刀一年来着
另一种方式便是网上找资源(懂得都懂),不过有财力的小伙伴还是建议支持一下正版(反正我穷(狗头))

sqlmap

别问,问就是sql注入神器,用过的都说好!
(这真不是忽悠,曾经精通sqlmap的人在src上仅仅用这个工具挖洞得到了6万奖金)

sqlmap是一款开源的渗透测试工具,可以自动检测并利用sql注入漏洞,配备有十分强大的检测引擎。

条件:预装python环境,官网下载即可
下载地址:官网即可 sqlmap是开源的不会收费 但是网上的其他版本可能会留有后门,保险起见官网下载,地址在下面
链接: link.

关于具体安装与环境配置,网上也有很多教程,不再赘述。

(这里多插一嘴,做sql注入不能过度依赖sqlmap,有一些比较隐蔽的报错、回显注入检测不出来还是需要手动注入的,应当在掌握理论知识的同时结合工具的使用)

kali linux

别问,问就是渗透测试神器,用过的都说好!
(俗话说,kali学得好,牢饭吃得早)
linux系统无论是在操作指令方面还是程序编写方面都有着不俗的效率,因此每位ctfer都应该有一套自己的linux虚拟机,debian,ubuntu都是不错的选择,但是对于web选手而言,我着重推荐kali,因为kali内置了一套十分完整的渗透工具,包括我们先前提到的sqlmap,burp社区版,nmap,wireshark等等,一键集成,方便快捷!

条件:vmware kali镜像文件(.iso)
简单说,vmware是一个提供虚拟机安装测试环境的软件,而镜像文件就相当于你要安装的系统,将镜像文件安装并配置到vm中就得到了一台虚拟机

教程,网上有很多详细的,这里不再多说

web整体框架

web安全方向的题都有哪些类型呢?简单拉个框架介绍一下

  • web
    • sql注入
      • 回显注入
      • 报错注入
      • 盲注
    • xss跨站脚本攻击
      • 反射型
      • 存储型
      • DOM
    • csrf跨站请求伪造
    • 文件相关
      • 文件包含漏洞
      • 文件上传
      • 文件下载
    • php相关
      • php反序列化
      • XXE
      • SSRF
    • 其他
      • 暴力破解
      • url重定向

简述具体内容

后续会持续完善

一些例题的思路与知识拓展

后续会持续完善

篇幅实在有限,此篇就不对具体知识进行讲解了,以后有机会吧,不过我尽量把wp写详细一些

get传参与正则表达式

JLUCTF 2020 热身赛
首先简单看一下代码,得到两个信息,首先s的传入方式是get型,其次这段代码实际上是对pattern与subject进行匹配,匹配成功输出flag。而pattern看格式/^…$ /明显是正则表达式,也就是说当subject符合正则pattern的要求的时候,就会输出flag。
分析一下正则的几个位置:
\s 空白字符
\d 数字
{2,3} 大括号内表示长度,即2位或3位

\ / 这里有一点绕 前面的 \ 表示转义符 简单做一下说明:有些字符比如 / $ 等,在正则中是有实际意义的参数,同时也可以作为字符,如何区分这两者呢?约定在字符前面加上一个转义字符 \ ,以此来表示需要匹配的是字符

所以这个 \ / 的意思是匹配字符 /
[a-z] 任意一个小写字母
(.+) 匹配括号 ()

^ 为开始标志 $ 为结束标志

因此需要在字符串
theflag1之间需要加入 空格 2-3位数字 / 任意字母 / () 并且将位置对应
而get传参的基本方式就是在url后面加 /?id=

因此这道题的payload为 /?s=the flag234/a/()1

知识拓展:

1.get与post 两种传参方式 建议百度或csdn
2.正则表达式 建议看菜鸟教程

重定向

JLUCTF 2020 热身赛

重定向本质上是网页之间的跳转

hint 说这是一个重定向的题目 打开链接看一下 url最后一级文件目录是index.php 页面中还有一个2.php的入口,一直点击下一个页面中的入口,发现在4.php下,入口的名字是5.php,而我们实际上回到了index.php。

为啥5没了呢 (哦 我知道了 因为5字不行!)

还隔着开团?就摁开!

实际上是从index到4通过页面跳转 回到了index 从而在index与4之间形成了一个闭环,从而将5隐藏起来。所以我们有理由怀疑5.php中有我们想要的flag

这时只要不让网页进行重定向就可以了 我们打开kali 在终端使用curl指令链接到5.php curl默认是不支持重定向的,除非有-L的参数。
curl http://59.72.109.16:33020/5.php

果然,在5.php中得到了flag

知识拓展:

  1. linux指令 建议搜索 linux指令集
  2. 重定向 csdn有很多博客都讲得不错
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服