自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

爬蟲(chóng)-化被動(dòng)為主動(dòng)

安全 應(yīng)用安全
現(xiàn)在網(wǎng)上有很多被動(dòng)式掃描器,配置一個(gè)代理給瀏覽器設(shè)置,然后人去點(diǎn)擊瀏覽器上的網(wǎng)頁(yè),在這種模式下抓到的URL數(shù)量沒(méi)有用爬蟲(chóng)的效果好。那么,如何在不改變?cè)粍?dòng)掃描器的情況下讓被動(dòng)變成主動(dòng)?

一、前言

現(xiàn)在網(wǎng)上有很多被動(dòng)式掃描器,配置一個(gè)代理給瀏覽器設(shè)置,然后人去點(diǎn)擊瀏覽器上的網(wǎng)頁(yè),在這種模式下抓到的URL數(shù)量沒(méi)有用爬蟲(chóng)的效果好。

我個(gè)人是比較懶的,先也寫(xiě)了個(gè)被動(dòng)的掃描器,不想改以前寫(xiě)的東西,而且被動(dòng)也有被動(dòng)的優(yōu)點(diǎn),所以就想可不可以讓爬蟲(chóng)也設(shè)置個(gè)代理。就有了下面的東西,很方便。

[[190785]]

二、實(shí)操

如何在不改變?cè)粍?dòng)掃描器的情況下讓被動(dòng)變成主動(dòng)。

主結(jié)構(gòu):

以phantomjs為核心,用JS模仿人對(duì)頁(yè)面的操作,代理軟件抓鏈接。以下流程是通用pychon腳本實(shí)現(xiàn)的。

1打開(kāi)瀏覽器并設(shè)置代理->2輸入網(wǎng)址->3填充表單->4點(diǎn)擊按鈕->5點(diǎn)擊超鏈拉->6關(guān)閉標(biāo)簽->7關(guān)閉瀏覽器,循環(huán)2-6。

1. 打開(kāi)瀏覽器并設(shè)置代理

  1. proxy_config = [ 
  2.     '--proxy=127.0.0.1:8080', 
  3.     '--proxy-type=http', 
  4.     '--ignore-ssl-errors=yes', 
  5. phantomjs_path='/home/ubuntu_235/proxyscan/phantomjs/phantomjs/bin/phantomjs' 
  6. driver = webdriver.PhantomJS(executable_path=phantomjs_path,service_args=sys_config

2. 輸入網(wǎng)址

  1. driver.get('http://demo.aisec.cn') 

3. 填充表單

  1. _input_text = ""
  2.         var input_list=document.getElementsByTagName("input"); 
  3.         for (i_i=0;i_i<input_list.length;i_i++){ 
  4.         var input_type=input_list[i_i].attributes["type"].value 
  5.         if (input_type == "text" || input_type == "password"){ 
  6.         input_list[i_i].value="ascan@ascan.com"
  7.         continue; 
  8.         } 
  9.         if (input_type == "radio" || input_type == "checkbox"){ 
  10.         input_list[i_i].setAttribute('target','_blank'); 
  11.         input_list[i_i].checked="True"
  12.         } 
  13.         } 
  14. """ 

4. 點(diǎn)擊按鈕

  1. _but_click = ""
  2.         var but_list=document.getElementsByTagName("input"); 
  3.         for (b_i=0;b_i<but_list.length;b_i++){ 
  4.                 var but_type=but_list[b_i].attributes["type"].value 
  5.         if (but_type == "button" || but_type == "submit"){ 
  6.         but_list[b_i].setAttribute('target','_blank'); 
  7.         but_list[b_i].click(); 
  8.         } 
  9.         } 
  10.         """ 

5. 點(diǎn)擊超鏈接

  1. _a_click = ""
  2.        var a_list=document.getElementsByTagName("a"); 
  3.        for (a_i=0;a_i<a_list.length;a_i++){ 
  4.        a_list[a_i].setAttribute('target','_blank'); 
  5.        a_list[a_i].click(); 
  6.        } 
  7.        """ 

這里注意下,我在click前給標(biāo)簽加了一個(gè)target=”_blank”,在新的標(biāo)簽頁(yè)打開(kāi)鏈接

6. 關(guān)閉標(biāo)簽

  1. for h in driver.window_handles[1:]: 
  2. driver.switch_to_window(h) 
  3. driver.close() 

注意:應(yīng)該先獲取有標(biāo)簽頁(yè)的handle在用switch_to_window

切換到該標(biāo)簽頁(yè),執(zhí)行quit()操作。driver.window_handles[1:]保留的是第一個(gè)頁(yè)面。

在完成所有操作后關(guān)閉瀏覽器

  1. driver.close() 

通過(guò)burpsuite抓到的請(qǐng)求包

通過(guò)burpsuite抓到的請(qǐng)求包

最終實(shí)現(xiàn)的結(jié)果展示

通過(guò)burpsuite抓到的請(qǐng)求包

一些注意點(diǎn):

如何獲取當(dāng)前頁(yè)面的所有標(biāo)簽的href?

  1. url_list=[] 
  2. a_list=self.driver.find_elements_by_xpath("//a[@href]") 
  3. for a in a_list: 
  4. url_list.append(a.get_attribute("href")) 
  5. print(url_list) 

如何獲取當(dāng)前標(biāo)簽的URL?

  1. driver.current_url 

有什么坑?

a.瀏覽器打頁(yè)面要時(shí)間,但python不知道(不是真不知道)

b.會(huì)不明原因的卡死,沒(méi)有報(bào)錯(cuò)

c.頁(yè)面跳轉(zhuǎn)

責(zé)任編輯:趙寧寧 來(lái)源: 安全客
相關(guān)推薦

2012-02-01 13:33:45

2013-11-11 16:18:13

戴爾

2009-03-11 17:39:42

殺毒服務(wù)主動(dòng)

2013-01-06 10:36:04

2020-02-24 23:20:23

RSA大會(huì)網(wǎng)絡(luò)安全

2022-10-31 09:56:00

AR

2023-03-02 12:11:21

2023-10-09 16:21:37

2025-03-17 00:00:00

OT系統(tǒng)安全運(yùn)營(yíng)技術(shù)

2012-02-16 10:37:34

2011-12-30 11:07:13

2013-06-19 09:54:37

產(chǎn)品設(shè)計(jì)產(chǎn)品功能推薦功能

2009-07-15 18:11:17

MVC模式學(xué)習(xí)

2013-01-14 11:29:39

2025-04-28 02:55:00

2020-11-24 09:36:19

分布式監(jiān)控系統(tǒng)

2013-08-20 16:44:33

2021-01-10 09:21:32

網(wǎng)絡(luò)安全數(shù)據(jù)泄露惡意攻擊

2018-01-31 13:59:46

思科預(yù)測(cè)數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)