python 自动点赞_python实现在有漏洞的网站实现自动注册、登录、点赞
必須有以下幾個(gè)漏洞才能實(shí)現(xiàn)該功能:
1.驗(yàn)證碼是假的,有圖片,但是實(shí)際輸入的驗(yàn)證碼與圖片無(wú)關(guān);否則的話必須要用到python的圖像識(shí)別的模塊
2.注冊(cè)時(shí)不需要郵箱驗(yàn)證,所以注冊(cè)填寫的郵箱地址是任意的,只要符合郵箱輸入欄的正則表達(dá)式就可以了。(相當(dāng)于在對(duì)方服務(wù)器的數(shù)據(jù)庫(kù)添加了一堆沒(méi)用的郵箱賬號(hào))
所以這個(gè)東西很局限(正常的網(wǎng)站都不會(huì)有這些漏洞),只能用于爬蟲的相關(guān)學(xué)習(xí)。
安裝requests模塊
首先,你需要對(duì)網(wǎng)站發(fā)出請(qǐng)求,所以你需要安裝python的requests模塊。
在MacOS的系統(tǒng)下,如果你已經(jīng)安裝了python的pip工具,那么只需要在控制命令行中輸入:
$pip3 install requests
這邊用pip3是因?yàn)榻o系統(tǒng)里面的python3.X安裝這個(gè)模塊
就會(huì)自動(dòng)安裝。
若沒(méi)有pip,則先用easy-install安裝pip:
$easy-install pip3
還有幾個(gè)用于爬蟲的模塊,例如beautifulsoup ,urllib等等。
在windows環(huán)境下,如果安裝了pip工具應(yīng)該也是一樣的方法。
進(jìn)行分析
1.分析注冊(cè)傳遞的數(shù)據(jù)
如果安裝完了requests模塊的話,接下來(lái)就可以進(jìn)行對(duì)這個(gè)注冊(cè)登錄的操作進(jìn)行分析,但是這里推薦使用goole的瀏覽器chrome。
打開注冊(cè)地址,右擊——>檢查,選擇network(網(wǎng)絡(luò)),如果上面有東西先清除掉:
WX20170603-230646@2x.png
然后輸入一個(gè)測(cè)試的郵箱,隨便輸入一個(gè)驗(yàn)證碼:
WX20170603-231118@2x.png
點(diǎn)擊下一步,觀察network里面的數(shù)據(jù):
WX20170603-231226@2x.png
正常來(lái)說(shuō)應(yīng)給是第一個(gè),發(fā)現(xiàn)請(qǐng)求方式是POST,說(shuō)明是有向服務(wù)器上傳數(shù)據(jù)的,然后往下拉,找到form data:
WX20170603-231234@2x.png
這里面就很清楚了,里面上傳的是剛剛我們輸入的賬號(hào)和密碼,還有其他的一些東西,先把它保存下來(lái),待會(huì)需要模擬上傳數(shù)據(jù)。
接下來(lái)是這個(gè)輸入密碼的界面了:
WX20170603-231541@2x.png
我們?cè)囈幌螺斎?234(要兩次都一樣,有的網(wǎng)站是需要大小寫字母之類的,取決于里面的正則表達(dá)式),再次把network清空,點(diǎn)擊完成注冊(cè):
WX20170603-231743@2x.png
找到第一個(gè)POST包的form data:
WX20170603-231829@2x.png
發(fā)現(xiàn)這里面就是剛剛輸入的密碼(其實(shí)一些比較好一點(diǎn)的網(wǎng)站都會(huì)有加密的,所以正常是看不出真正的密碼的,例如qq空間登錄時(shí)傳遞密碼的data是經(jīng)過(guò)加密處理的)。
到這一步的話,就已經(jīng)成功一小半了,基本可以實(shí)現(xiàn)注冊(cè)和登錄了(雖然沒(méi)有演示登錄,但是是一樣的,只不過(guò)傳遞的form data里面是賬號(hào)密碼和其他一些東西而已)。
2.分析點(diǎn)贊的時(shí)候傳遞的數(shù)據(jù)
找到一個(gè)東西如下:
WX20170603-232955@2x.png
點(diǎn)擊星星,找到network里面發(fā)送的數(shù)據(jù)包:
WX20170603-233238@2x.png
我們不難發(fā)現(xiàn),它是通過(guò)向Requset URL
post了一個(gè)數(shù)據(jù)包form data,里面有一個(gè)productld:4557。
這里的4557有可能是商品的代碼。
然后再找到另一個(gè)商品,再次點(diǎn)贊,分析,發(fā)現(xiàn)確實(shí)是商品的一個(gè)代碼。
OK,做到這里,我們已經(jīng)分析完畢了,已經(jīng)找到需要post的所有數(shù)據(jù)包了,那么接下來(lái)就開始碼代碼實(shí)現(xiàn)模擬這個(gè)過(guò)程了。
代碼實(shí)現(xiàn)
import requests
import random
times = 0 # 計(jì)次
number = input('請(qǐng)輸入需要點(diǎn)贊的次數(shù):')
item_code = input('請(qǐng)輸入商品的代碼:')
for i in range(1, int(number)):
a = random.randint(1, 99999999999) # 隨機(jī)生成郵箱中的字段
username = '100456456002' + str(a) + '@163.com' # 隨機(jī)生成郵箱
Session = requests.session() # 生成一個(gè)新的會(huì)話窗口
url_register1 = 'http://www.05928024555.com/m/register/step1' # 注冊(cè)頁(yè)面(賬號(hào))
data_username = {
'param': '',
'registerType': 2,
'system': 'mRegister',
'customer.username': username,
'randomCode': '1234',
'smscn': ''} # post賬號(hào)表單,以及虛假的驗(yàn)證碼
url_register2 = 'http://www.05928024555.com/m/register' # 注冊(cè)頁(yè)面(密碼)
data_password = {
'userCardNo': '',
'password': '1111',
'passwordConfirm': '1111'} # post密碼表單
Session.post(url=url_register1, data=data_username) # 模擬輸入賬號(hào)并進(jìn)入下一個(gè)頁(yè)面
Session.post(url=url_register2, data=data_password)
# 模擬輸入密碼并注冊(cè)
Session.post('http://www.05928024555.com/m/account/favorite/add',
data={'productId': item_code}) # 該出4558為作品編號(hào)
times += 1
print('已經(jīng)點(diǎn)贊%d次' % times)
這樣就實(shí)現(xiàn)了簡(jiǎn)單的一個(gè)操作,但是幾乎所有的網(wǎng)站都不可能讓我們這樣做,所以并沒(méi)有什么價(jià)值,只能用來(lái)學(xué)習(xí)一下。大部分原理都差不多,只不過(guò)是復(fù)雜程度不同而已,例如進(jìn)行校園網(wǎng)登錄的時(shí)候需要使用的 lt 這個(gè)表單數(shù)據(jù),而這個(gè)數(shù)據(jù)是隨機(jī)的,你需要在登錄頁(yè)面的源碼里面找到這個(gè)東西才能實(shí)現(xiàn)登錄。
總結(jié)
以上是生活随笔為你收集整理的python 自动点赞_python实现在有漏洞的网站实现自动注册、登录、点赞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 风清月明,山清水明,心清志明,思清念明
- 下一篇: UE4移动平台AR开发快速预览