CTFHub Web技能树
web前置技能 HTTP协议
请求方式
使用bp抓包,send to repeater。
将开头的GET更改成CTFHUB,点击send。
在response中获得flag。
另外还可以用curl命令来获得flag,具体可以看官方的writeup。
302跳转
用bp抓包,点击Give me Flag的链接,send to repeater。
在response中获得flag。
cookie
依旧是用bp抓包……
可以看到这里admin=0,结合网页内容,可以联想到把admin改成1就可以获得flag了。
基础认证
题目已经给了参考链接。
打开网页,点击give会出现一个输入账号密码的窗口。
随便输个账号密码,抓包查看,会在response里面看到提示。
Do u know admin?
由此知道账号名是admin。
但是密码不知道怎么找,这里密码的部分用了base64加密,也不好直接爆破。
看了题目才发现有个附件被我漏了(晕)
打开来就是一个密码本。
那么就好解决了,把这些密码前面加上“admin:”然后再base64加密交给bp爆破就可以了。
经过加密之后的密码。
爆破之后的结果,长度和其他的不一样的就是正确密码了,在response里面可以看到flag。
响应包源代码
打开题目是个贪吃蛇游戏。
实际上flag就在源码里面,f12查看源码就看到flag在注释里面。
web 信息泄露
目录遍历
由于配置错误导致网站的目录可被遍历,一般该类漏洞可以为后续利用提供一些信息上的帮助。
点击会出现目录,一个一个找就可以找到flag了。
打开就是flag。
PHPINFO
直接查找就是了。
备份文件下载
网站源码
可以一个一个试,也可以直接扫描后台。
打开www.zip,会下载一个文件,里面有一个flag文件,打开来是这个。
在网址后面输入这个文件的名称,就可以获得flag了。
bak文件
题目提示是bak文件,在网址后面加上index.php.bak.
会下载index.php.bak。
用记事本打开就可以看到flag了。
vim缓存
这道题讲的是vim的缓存,可以参考这个https://www.cnblogs.com/zwfc/p/5466885.html
和上一道题的方法差不多。
.DS_Store
打开.DS_Store。
会下载一个叫.DS_Store的文件,翻一翻会看到这个。
题目告诉我们.DS_Store可以知道这个目录里面所有文件的清单,所以这个应该就是flag所在的文件。
网址访问。
访问了半天都是404,最后发现有一段被我忘掉了……
加上去之后访问就可以获得flag了。
信息泄露后面的不会做了……
密码口令
弱口令
题目都说了是弱口令就拿常见的账号密码试试吧。
admin和123456,flag就出来了。
默认口令
题目名是默认口令,让我们百度一下。
马上就有结果了。
题目用的是亿邮邮的网关,找一找默认口令就行了。
每一个都试一遍,最后找到flag。
密码口令目前能够做的题就结束了。
SQL注入
整数型注入
第一种方法 手注
进入题目,提示输入1试试?
那就试呗。
直接把语句显示出来了。
因为是整数型注入,不用加单引号。
猜字段。
在字段数为二的时候有回显,所以字段数为2.
看哪个字段能够回显,这里要把id改成-1让它能够爆错。(其他的能够爆错的也可以)
在2处注入,查找数据库。
数据库为sqli。
查表。
表名为news和flag。
查字段名。
查数据。
第二种方法 sqlmap
在url后面加上?id=1然后在sqlmap中检查是否有注入点。
存在注入点。
查数据库。
1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –current-db
数据库名为sqli。
爆表名。
1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –D sqli –-tables
表名为flag和news。
爆字段名。
1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –D sqli –T flag --columns
字段名为flag。
爆数据。
1 1 sqlmap.py –u http://challenge-2ace14d871435db0.sandbox.ctfhub.com:10080/?id=1 –D sqli –T flag -C flag --dump
字符型注入
第一种方法 手注
输入1,可以看到语句。
这道题和上一题不同,1变成了‘1’.
加上单引号并且注释屏蔽后面的语句。
查字段。
查看哪个字段能够回显。
查数据库。
查表。
查字段。
查数据。
第二种方法 sqlmap
跟上一题方法一样
报错注入
联想题目:bugku多次第二部分 https://www.cnblogs.com/truthilia-12580/p/12288529.html
前面的题目字段数都是2,这回就先拿2试一试。
拿3试一试。
说明字段数是3.
当前数据库。
数据库中的表。
表中的字段。
数据。
这里只有前32位的,用substr截取就可以看到后面了。
1 substr(a,b,c) 2 从字符串a的b位置开始截取c个字符,当b为负数时截取位置是从字符串a右端向左数b个字符
拼接起来就是完整的flag了。
这一篇写得太长了,寻思着再分一篇ヽ(*。>Д<)o゜