㈠ webmagic 怎麼模擬登陸
webmagic模擬登錄方案:方案一:模擬瀏覽器登錄,用代碼模擬表單填寫,然後獲取登陸後的信息,用apache的「HttpClients」進行信息保存。不需要考慮cookie失效問題。
方案二:直接拿去cookie信息,進行設置。可能會用時間限制,超過一定時間就不能再使用了,需要重新設置。
方案一實現:
?
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<code>import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.message.BasicNameValuePair;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import com.wgyscsf.utils.HttpUtils;
public class SimulateLoginPolicy1 {
static boolean result = false;
public static void main(String[] args) {
loginCsdnPager();
try {
loginedPager();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void loginedPager() throws IOException,
ClientProtocolException {
HttpUriRequest httpUriRequest = new HttpPost(
"http://blog.csdn.net/wgyscsf");
httpUriRequest
.setHeader("Accept",
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
httpUriRequest.setHeader("Accept-Encoding", "gzip,deflate,sdch");
httpUriRequest.setHeader("Accept-Language", "zh-CN,zh;q=0.8");
httpUriRequest.setHeader("Connection", "keep-alive");
// 模擬瀏覽器,否則CSDN伺服器限制訪問
httpUriRequest
.setHeader(
"User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36");
HttpResponse response = HttpUtils.httpClient.execute(httpUriRequest);
InputStream content = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(content));
String line = "";
String result = "";
while ((line = br.readLine()) != null) {
result += line;
}
br.close();
System.out.println(result);
}
/**
* 登錄頁面
*/
private static void loginCsdnPager() {
String html = HttpUtils
.sendGet("https://passport.csdn.net/account/login?ref=toolbar");// 這個是登錄的頁面
Document doc = Jsoup.parse(html);
// 獲取表單所在的節點
Element form = doc.select(".user-pass").get(0);
String lt = form.select("input[name=lt]").get(0).val();
String execution = form.select("input[name=execution]").get(0).val();
String _eventId = form.select("input[name=_eventId]").get(0).val();
List<namevaluepair> nvps = new ArrayList<namevaluepair>();
nvps.add(new BasicNameValuePair("username", "[email protected]"));
nvps.add(new BasicNameValuePair("password", "wanggaoyuan"));
nvps.add(new BasicNameValuePair("lt", lt));
nvps.add(new BasicNameValuePair("execution", execution));
nvps.add(new BasicNameValuePair("_eventId", _eventId));
String ret = HttpUtils.sendPost(
"https://passport.csdn.net/account/login?ref=toolbar", nvps);
if (ret.indexOf("redirect_back") > -1) {
System.out.println("登陸成功");
result = true;
} else if (ret.indexOf("登錄太頻繁") > -1) {
System.out.println("登錄太頻繁,請稍後再試。。。。。");
return;
} else {
System.out.println("登陸失敗。");
return;
}
}
}</namevaluepair></namevaluepair></code>
方案二:使用瀏覽器的開發者工具將cookie手動加進去
㈡ H3C MSR-30-20路由器登陸WEB界面
登錄Web網管
在確認設備支持Web網管後,先要對設備進行一系列的配置,才能登錄Web網管。登錄Web網管的全過程如下。
(1) 連接設備和PC 通過Console口搭建本地配置環境。如圖1-2所示,只需將PC機(或終端)的串口通過配置電纜與設備的Console口連接。 通過Console口搭建本地配置環境
(2) 在PC上配置終端模擬程序 在PC機上運行終端模擬程序(如Windows 3.X的Terminal、Windows 9X的超級終端等)。 設置終端通信參數:波特率為9600bps、數據位為8、奇偶校驗為無、停止位為1、數據流控制為無。
(3) 進入設備的命令行介面
加電啟動設備,PC終端上將顯示設備的自檢信息。自檢結束後鍵入<Enter>,進入設備的命令行介面。
(4) 設備的基本配置
# 配置設備介面的IP地址。
<Sysname> system-view
[Sysname] interface ethernet 0/0 ←進入介面試圖
[Sysname-Ethernet0/0] ip address 10.153.17.82 255.255.255.0 ←配置介面的IP地址為10.153.17.82
[Sysname-Ethernet0/0] quit ←退出介面試圖
# 添加設備的Telnet用戶,用戶級別設為3(管理級用戶)。
[Sysname] local-user admin ←設置Telnet用戶名為admin
[Sysname-luser-admin] service-type telnet level 3 ←設置級別3 (-----如果此時報錯,則按#2添加Telnet用戶)
[Sysname-luser-admin] password simple admin ←設置用戶admin的密碼為admin
[Sysname-luser-admin]ip http enable ←開啟http功能
[Sysname-luser-admin] save ←保存配置
#2 添加設備的Telnet用戶,用戶級別設為3(管理級用戶)。
[Sysname] local-user admin ←設置Telnet用戶名為admin
[Sysname-luser-admin]password cipher admin ←設置用戶admin的密碼為admin
[Sysname-luser-admin]authorization-attribute level 3 ←設置級別3
[Sysname-luser-admin]service-type telnet
[Sysname-luser-admin]ip http enable ←開啟http功能
[Sysname-luser-admin] save ←保存配置
(5) 登錄Web網管
在與設備路由可達的Web網管終端(比如PC)上啟動瀏覽器,訪問http://10.153.17.82即可進入Web網管登陸頁面。在Web網管登錄頁面的右上角有切換Web網管語言的鏈接。目前Web網管支持兩種語言:中文和English。 輸入用戶名admin和密碼admin,單擊<登錄>按鈕即可進入Web網管並進行管理操作。
㈢ web滲透測試之攻破登錄頁面
當我們在做滲透測試時,無論廠商項目還是src眾測項目,都會遇到給一堆登錄系統的URL,然後讓我們自己去測,能不能進去全看天的狀況,本文將講一下怎麼突破這種封閉的web系統,從而進行更深層次的滲透 ,學完後你會發現,其實你就是系統管理員。
如果能直接繞過登錄系統界面,後面的就比較好做了,目前常見的登錄系統繞過方法有:
大部分情況下,系統登錄頁面都不存在xss,目錄遍歷,SQL注入等漏洞,這時候最常用的方法就是爆破和猜解登錄口令,密碼猜解最關鍵的就是字典要高效准確
https:// down.52pojie.cn/Tools/N etwork_Analyzer/Burp_Suite_Pro_v1.7.31_Loader_Keygen.zip
2.准確的用戶名,密碼字典是高效破解的重中之重 ,一般都是指定幾個常見用戶名 ,嘗試 top500,top1000進行爆破 字典不必要太大,最重要的是針對性要強 ,下面是top1000:
鏈接: https:// pan..com/s/1-XztuB 8YTfpT5aUBVbmbzA 密碼: 56pb
3.如果還是不能猜解成功,就要根據目標信息用字典生成器構造針對性的字典來猜解了,推 薦幾個比較好的字典生成工具
pydictor:
LandGrey/pydictor
crunch:
crunch - wordlist generator
Cewl:
digininja/CeWL
Cupp:
Mebus/cupp
因為管理員許可權較高,通常我都會先進行管理員口令的猜解,總結了一些常見的管理員用戶名字典
<u>鏈接:</u> <u> https:// pan..com/s/1sOD1-u whnStaw_LfMOf-sQ </u><u>密碼: 3yqe</u>
用此用戶名字典,再加上弱口令top1000,同時爆破系統管理員用戶名密碼
鏈接: https:// pan..com/s/1-XztuB 8YTfpT5aUBVbmbzA 密碼: 56pb
常見的普通用戶用戶名是姓名拼音,總結了普通用戶字典
TOP3000姓名
<u>鏈接:</u> <u> https:// pan..com/s/1qN9kCF tymP4ugvu3FFkKbA </u><u>密碼: hkzp</u>
TOP10w姓名
https:// github.com/rootphantome r/Blasting_dictionary/blob/master/top10W.txt
通常可以選擇幾個弱口令密碼,比如:123456,123abc,111111,然後配合top10w來猜解登陸口令,一些初始化的默認密碼也很簡單,如果能找到配合top10w通常也能爆出登錄口令
現在的業務系統口令傳輸到後端前都會進行加密處理 ,web常見的加密方式有 md5 加密、sha1 加密、RSA 加密,在此基礎上總結了兩種破解方式:
1.利用burpsuite的payload processing功能,把字典按照加密方式先加密再發包
2.用字典生成工具生成加密好的字典,然後burp直接載入加密字典
這里推薦的字典生成工具是pydictor,encode功能內置了多種加密演算法,調用handler工具直接加密自己的明文字典
如果登錄系統設置了IP地址白名單,我們可以通過下面的幾個http頭欄位偽造IP地址,用burp抓包後將下面的某個http頭欄位加入數據包發送到伺服器
<pre class="prettyprint hljs css" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">Client-Ip: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Real-IP: 127.0.0.1
True-Client-IP: 127.0.0.1
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Forwarded-Host: 127.0.0.1</pre>
如果在系統登陸界面加上了驗證碼,那麼上面的方法基本上就都失效了,那有什麼方法可以繞過驗證呢
1.圖形驗證碼不刷新
在一段時間內只要不刷新頁面,無論登錄失敗多少次都不刷新驗證碼,這個時候就可以使用同一個驗證碼根據上面的方式進行暴力破解
2.驗證碼失效
不管在驗證碼表單輸入什麼樣的數據,都會判斷通過,但這種情況很少見
3.圖形驗證碼可被識別,抓包直接可以獲得驗證碼
很多網站的驗證碼都可以在請求數據包中找到,或者隱藏在request的cookie中,response的源碼中,可以利用burpsuite的macros來匹配response中的相應數據,具體的爆破方法參見下文:
burpsuite爆破密碼(含驗證碼) - CSDN博客
4.圖形驗證碼參數直接繞過
對於request數據: user=admin&pass=1234&vcode=brln,有兩種繞過方法:
一是驗證碼空值繞過,改成 user=admin&pass=1234&vcode=;
一是直接刪除驗證碼參數,改成 user=admin&pass=1234。
5.萬能驗證碼
滲透測試的過程中,有時候會出現這種情況,系統存在一個萬能驗證碼,如0000、9999,只要輸入萬能驗證碼,就可以無視驗證碼進行暴力破解。
6. 驗證碼可被識別
有些圖形驗證碼加入的像素線條過於簡單,使用圖形驗證碼識別工具可以識別出每次更換的驗證碼,在平常的漏洞挖掘過程中,如果我們發現登錄的驗證碼非常簡單且易於識別,那我們就可以嘗試使用自動化工具來進行登錄破解了,如 PKAV 的 HTTP Fuzzer
7.使用機器學習演算法識別驗證碼
主要是對特定網站的圖形驗證碼訓練識別模型,達到一定的准確率就可以調用進行模擬提交圖形驗證碼的值了。可參考以下三篇文章進行學習:
使用KNN演算法識別驗證碼:
http:// nlao.github.io/2016/0 9/22/%E9%AA%8C%E8%AF%81%E7%A0%81%E7%A0%B4%E8%A7%A3%E6%8A%80%E6%9C%AF%E5%9B%9B%E9%83%A8%E6%9B%B2%E4%B9%8B%E4%BD%BF%E7%94%A8K%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95/
卷積神經網路識別驗證碼
http:// nlao.github.io/2016/0 9/23/%E9%AA%8C%E8%AF%81%E7%A0%81%E7%A0%B4%E8%A7%A3%E6%8A%80%E6%9C%AF%E5%9B%9B%E9%83%A8%E6%9B%B2%E4%B9%8B%E4%BD%BF%E7%94%A8%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/
使用 TensorFlow 訓練驗證碼
http:// nlao.github.io/2017/0 4/10/%E4%BD%BF%E7%94%A8TensorFlow%E8%AE%AD%E7%BB%83Weibo-cn%E9%AA%8C%E8%AF%81%E7%A0%81/
對於網站要求輸入手機號,接收手機簡訊並校驗簡訊驗證碼是否正確進行登錄的系統,突破的主要思路有:
1.簡訊驗證碼生命期限內可暴力枚舉
在驗證碼還未過期的時間段內,可枚舉全部的純四位數字、六位數字等較簡單的簡訊驗證碼;
2. 簡訊驗證碼在數據包中返回
和圖形驗證碼一樣,在response中可以直接獲取到簡訊驗證碼。
3. 修改請求數據包參數或 Cookie 值繞過
比如有 post 數據包:mobile=12435437658&userid=123456, Cookie中有:codetype=1
在特定步驟,修改 mobile=自己的手機號,自己手機就可以收到別人的驗證碼,後面再用別人的手機號和接收到的驗證碼登錄;
修改 Cookie 中可疑的參數和值,進行繞過,比如上面修改 codetype=0;
4. 修改返回包繞過
提交錯誤的簡訊驗證碼,返回包中有: status=false,在Burpsuite中修改為 status=true,即可繞過前端判斷,成功進入系統。具體還要結合實際的場景,靈活操作。
web系統登陸頁面看似銅牆鐵壁,但其實只要梳理一遍思路,右鍵看過每一行網站源碼,弄懂每個參數的意義,查看每一個js文件,就會發現其實自己就是系統管理員,只是我把密碼忘了,現在我要用上面的方式進入。
㈣ web上網認證如何實現自動登陸
本地存有一個Iskey的布爾值,保存的是當前的這個賬號之前在本機登陸,並且選擇了保存用戶信息的操作,讓它為真,進入登錄界面之前判斷這個布爾值就行