CTFHub Web技能树

web前置技能 HTTP协议

请求方式

chrome_2020-03-03_10-30-45

使用bp抓包,send to repeater。

将开头的GET更改成CTFHUB,点击send。

java_2020-03-03_10-37-36

在response中获得flag。

java_2020-03-03_10-37-03

另外还可以用curl命令来获得flag,具体可以看官方的writeup。

302跳转

chrome_2020-03-03_10-41-47

用bp抓包,点击Give me Flag的链接,send to repeater。

java_2020-03-03_10-43-28

在response中获得flag。

java_2020-03-03_10-45-45

cookie

chrome_2020-03-03_10-46-51

依旧是用bp抓包……

java_2020-03-03_10-48-10

可以看到这里admin=0,结合网页内容,可以联想到把admin改成1就可以获得flag了。

java_2020-03-03_10-49-38


基础认证

chrome_2020-03-03_12-11-55

题目已经给了参考链接。

chrome_2020-03-03_13-22-58

chrome_2020-03-03_13-23-15

打开网页,点击give会出现一个输入账号密码的窗口。

chrome_2020-03-03_13-10-44

随便输个账号密码,抓包查看,会在response里面看到提示。

java_2020-03-03_13-13-12

Do u know admin?

由此知道账号名是admin。

但是密码不知道怎么找,这里密码的部分用了base64加密,也不好直接爆破。

看了题目才发现有个附件被我漏了(晕)

打开来就是一个密码本。

notepad_2020-03-03_13-16-39

那么就好解决了,把这些密码前面加上“admin:”然后再base64加密交给bp爆破就可以了。

经过加密之后的密码。

pythonw_2020-03-03_13-20-21

爆破之后的结果,长度和其他的不一样的就是正确密码了,在response里面可以看到flag。

java_2020-03-03_13-21-08

响应包源代码

打开题目是个贪吃蛇游戏。

实际上flag就在源码里面,f12查看源码就看到flag在注释里面。

chrome_2020-03-03_13-31-01

web 信息泄露

目录遍历

由于配置错误导致网站的目录可被遍历,一般该类漏洞可以为后续利用提供一些信息上的帮助。

chrome_2020-03-03_13-54-43

点击会出现目录,一个一个找就可以找到flag了。

chrome_2020-03-03_13-55-25

打开就是flag。

PHPINFO

chrome_2020-03-03_13-58-57

chrome_2020-03-03_13-59-29

直接查找就是了。

chrome_2020-03-03_13-59-53

备份文件下载

网站源码

chrome_2020-03-03_14-02-59

可以一个一个试,也可以直接扫描后台。

御剑后台扫描工具_2020-03-03_14-20-55

打开www.zip,会下载一个文件,里面有一个flag文件,打开来是这个。

notepad_2020-03-03_14-22-30

在网址后面输入这个文件的名称,就可以获得flag了。

chrome_2020-03-03_14-24-05

bak文件

chrome_2020-03-03_16-07-21

题目提示是bak文件,在网址后面加上index.php.bak.

chrome_2020-03-03_16-08-16

会下载index.php.bak。

用记事本打开就可以看到flag了。

notepad_2020-03-03_16-09-47

vim缓存

这道题讲的是vim的缓存,可以参考这个https://www.cnblogs.com/zwfc/p/5466885.html

和上一道题的方法差不多。

chrome_2020-03-03_16-22-55

notepad_2020-03-03_16-23-42

.DS_Store

chrome_2020-03-03_16-26-40

打开.DS_Store。

chrome_2020-03-03_16-30-14

会下载一个叫.DS_Store的文件,翻一翻会看到这个。

notepad_2020-03-03_16-32-24

题目告诉我们.DS_Store可以知道这个目录里面所有文件的清单,所以这个应该就是flag所在的文件。

网址访问。

访问了半天都是404,最后发现有一段被我忘掉了……

notepad_2020-03-03_16-43-46

加上去之后访问就可以获得flag了。

chrome_2020-03-03_16-44-18

信息泄露后面的不会做了……

密码口令

弱口令

题目都说了是弱口令就拿常见的账号密码试试吧。

admin和123456,flag就出来了。

默认口令

题目名是默认口令,让我们百度一下。

马上就有结果了。

参考链接

2020-03-05_19-00-29

题目用的是亿邮邮的网关,找一找默认口令就行了。

chrome_2020-03-05_19-02-15

每一个都试一遍,最后找到flag。

chrome_2020-03-05_19-04-03

密码口令目前能够做的题就结束了。

SQL注入

整数型注入

第一种方法 手注

进入题目,提示输入1试试?

那就试呗。

chrome_2020-03-05_19-13-25

直接把语句显示出来了。

因为是整数型注入,不用加单引号。

猜字段。

在字段数为二的时候有回显,所以字段数为2.

chrome_2020-03-06_09-54-43

看哪个字段能够回显,这里要把id改成-1让它能够爆错。(其他的能够爆错的也可以)

chrome_2020-03-06_10-04-40

在2处注入,查找数据库。

chrome_2020-03-06_10-05-18

数据库为sqli。

查表。

chrome_2020-03-06_10-12-47

表名为news和flag。

查字段名。

chrome_2020-03-06_10-14-40

查数据。

chrome_2020-03-06_10-20-08

第二种方法 sqlmap

在url后面加上?id=1然后在sqlmap中检查是否有注入点。

cmd_2020-03-06_10-23-19

cmd_2020-03-06_10-24-05

存在注入点。

查数据库。

  1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –current-db

cmd_2020-03-06_10-26-48

数据库名为sqli。

爆表名。

  1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –D sqli –-tables

cmd_2020-03-06_10-29-49

表名为flag和news。

爆字段名。

  1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –D sqli –T flag --columns

cmd_2020-03-06_10-33-00

字段名为flag。

爆数据。

  1   1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –D sqli –T flag -C flag --dump

字符型注入

第一种方法 手注

输入1,可以看到语句。

chrome_2020-03-06_11-04-28

这道题和上一题不同,1变成了‘1’.

加上单引号并且注释屏蔽后面的语句。

chrome_2020-03-06_11-07-02

查字段。

chrome_2020-03-06_11-08-06

查看哪个字段能够回显。

chrome_2020-03-06_11-09-07

查数据库。

chrome_2020-03-06_11-10-29

查表。

chrome_2020-03-06_11-12-12

查字段。

chrome_2020-03-06_11-14-30

查数据。

chrome_2020-03-06_11-16-09

第二种方法 sqlmap

跟上一题方法一样

报错注入

参考链接

联想题目:bugku多次第二部分 https://www.cnblogs.com/truthilia-12580/p/12288529.html

前面的题目字段数都是2,这回就先拿2试一试。

chrome_2020-03-06_12-09-52

拿3试一试。

chrome_2020-03-06_12-10-54

说明字段数是3.

当前数据库。

chrome_2020-03-06_12-14-47

数据库中的表。

chrome_2020-03-06_12-17-28

表中的字段。

chrome_2020-03-06_12-19-10

数据。

chrome_2020-03-06_12-21-55

这里只有前32位的,用substr截取就可以看到后面了。

  1 substr(a,b,c)
  2 从字符串a的b位置开始截取c个字符,当b为负数时截取位置是从字符串a右端向左数b个字符

chrome_2020-03-06_12-25-53

拼接起来就是完整的flag了。

这一篇写得太长了,寻思着再分一篇ヽ(*。>Д<)o゜

原文地址:https://www.cnblogs.com/truthilia-12580/p/12425919.html