国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
linux下用socket登陸訪問web - 試著改變自己
最近實(shí)驗(yàn)室出了一個(gè)有點(diǎn)可惡的政策,就是每天到實(shí)驗(yàn)室上班時(shí)簽到,走時(shí)注銷,以記錄你的工作時(shí)間,只讓登陸也就罷了,走時(shí)還得想著是否注銷了,不然也是“缺勤”。
這個(gè)可惡的做法直接導(dǎo)致大家開始找自動(dòng)登陸的辦法,“院長”已經(jīng)找到了一個(gè)辦法,用C#控件寫了一個(gè)瀏覽器來實(shí)現(xiàn)。
我一開始想到用linux下的Expect自動(dòng)登陸bbs的辦法來做,后來發(fā)現(xiàn)獲取不到web的關(guān)鍵字,更主要的是對Expect不熟悉,于是放棄。然后想到socket來發(fā)送偽造的http報(bào)頭,來給服務(wù)器發(fā)送相應(yīng)的請求報(bào)文應(yīng)該就可以了,于是開始實(shí)施。
為了了解我們手動(dòng)登陸時(shí)和服務(wù)器交互的http報(bào)文內(nèi)容,只有通過抓包的方式來截取發(fā)送的http報(bào)文,需要下載一個(gè)抓包工具,我用的是Ethereal,簡單使用就是安裝ethereal-setup-0.10.13.exe,它會(huì)要求安裝相應(yīng)的WinPcap_3_1.exe。安裝完之后啟動(dòng)Ethereal,點(diǎn)擊Capture -> Options,通過Interface下拉菜單選擇相應(yīng)的網(wǎng)卡,開始抓包,抓包后在Filter項(xiàng)輸入 http and ip.addr == 59.xx.xx.xx來選擇需要分析的http包。
分析發(fā)現(xiàn)發(fā)送用戶名和密碼報(bào)文有兩條,第一次發(fā)送用戶名密碼時(shí),服務(wù)端會(huì)傳送給我們一個(gè)JSESSIONID,這個(gè)sessionid是需要在緊接著的第二次發(fā)送用戶名密碼時(shí)返回給服務(wù)器的,因此需要截取出這個(gè)JSESSIONID的值,登陸成功后,還有一個(gè)點(diǎn)擊“我要登陸”的操作,這個(gè)是發(fā)送GET報(bào)文就行了,其中同樣要有JSESSIONID。對其中遇到的最大問題就是這個(gè),然后就是兩次POST報(bào)文之間連接是不能中斷的,最后點(diǎn)擊“我要登陸”的GET報(bào)文,連接需要重新建立一下。主要的就這些吧,有可能不對的地方,因?yàn)槲业豀TTP完全不懂,哎,本科時(shí)對這些竟然一點(diǎn)沒學(xué)好。
關(guān)于session,可以參考http://hi.baidu.com/linux_zss/blog/item/52d1d7178280d10fc83d6d79.html以幫助理解。
Ethereal下載地址ftp://study.byr.edu.cn/Pub/03-信息技術(shù)/計(jì)算機(jī)網(wǎng)絡(luò)/北郵校園網(wǎng)/Sniffer_Ethereal/
HTTP報(bào)文理解:
自動(dòng)登陸http報(bào)文理解
就給出這些吧,下面給出部分程序
    struct sockaddr_in web; /* 服務(wù)器 */
    char request[1024] = {'\0'}; /* 客戶端發(fā)送的請求報(bào)文內(nèi)容 */
    char recvbuf[4096] = {'\0'}; /* 客戶端接收的內(nèi)容 */
    char sessionid[40] = {'\0'}; /* 獲取JSESSIONID */
    FILE *fd;
    memset(&web, 0, sizeof(web));
    web.sin_family = AF_INET;     /* ipv4 */
    web.sin_port = ntohs(PORT);
    web.sin_addr.s_addr = inet_addr(SERVER_IP);
    s = socket(PF_INET, SOCK_STREAM, 0);  /* socket */
    if (s == -1)
        bail("socket(1)"); /* 錯(cuò)誤處理函數(shù) */
    c = connect(s, (struct sockaddr *)&web, sizeof(web));
    if (c == -1)
        bail("connect(1)");
    s = socket(PF_INET, SOCK_STREAM, 0);
    c = connect(s, (struct sockaddr *)&web, sizeof(web));
    memset(request, 0, 2048);
    strcat(request, "POST /check/checkuser.jsp HTTP/1.1\r\n");
    strcat(request, "Accept: text/html\r\n");
    strcat(request, "Referer:     strcat(request, "Accept-Language: zh-cn\r\n");
    strcat(request, "Content-Type: application/x-www-form-urlencoded\r\n");
    strcat(request, "Accept-Encoding: gzip, deflate\r\n");
    strcat(request, "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon)\r\n");
    strcat(request, "Host: 59.xx.xx.xx:xx\r\n");
    strcat(request, "Content-Length: 63\r\n");
    strcat(request, "Connection: Keep-Alive\r\n");
    strcat(request, "Cache-Control: no-cache\r\n\r\n");
    strcat(request, "username=liuby&userpw=MIMA&usertype=student&Submit=%B5%C7%C2%BD");
//  printf("%s\n,%d\n", request,strlen(request));
    z = send(s, request, strlen(request), 0); /* send */
    recv(s, recvbuf, 4096, 0);  /* 接收 */
    get_sessionid(recvbuf); /* 獲取sessionid */
/* 此時(shí)接收到的報(bào)文顯示為302 Moved Temporarily,這種一般需要再次發(fā)送請求GET需要跳轉(zhuǎn)到的網(wǎng)頁,不知道我這樣理解對不對,完全是根據(jù)這次做的來猜測的 */

    memset(request, 0, 2048);
    strcat(request, "GET /check/students/stulogin1.jsp?username=liuby&usertype=student HTTP/1.1\r\n")");
/* 根據(jù)抓包分析和JSESSIONID,再次構(gòu)造要發(fā)送到服務(wù)器的報(bào)文 */
   close(s); /* 關(guān)閉連接,如果要再次請求,重新建立socket,connect,send等 */
整個(gè)下來沒什么技術(shù)含量,只是讓自己學(xué)了一下如何抓包分析。
 
 
另外在網(wǎng)上也搜到了一個(gè)Window下自動(dòng)登陸的辦法,將以下內(nèi)容以記事本保存為.vbs后綴的文件。雙擊實(shí)現(xiàn)登陸
++++++++++這是我們實(shí)驗(yàn)室網(wǎng)站的自動(dòng)登陸注銷vbs腳本+++++++++++++++++
set ws = createobject("Wscript.shell")
username = "liuby"
password = "密碼"
ws.Run "IExplore Wscript.sleep 2000
ws.SendKeys "{TAB}"
ws.SendKeys "
WScript.Sleep(5)
ws.SendKeys "{ENTER}"
SendKeys 方法用于將一個(gè)或多個(gè)鍵擊發(fā)送到活動(dòng)窗口(仿佛是在鍵盤上擊鍵一樣)。參考文章為http://www.leftworld.net/online/winscript/html/wsmthsendkeys.htm
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用Socket實(shí)現(xiàn)HTTP協(xié)議的文件上傳
HTTP協(xié)議和XMPP協(xié)議
TCP/IP(七)之玩轉(zhuǎn)HTTP協(xié)議
固定SessionID漏洞 攻擊
物聯(lián)網(wǎng)常見名詞解釋
應(yīng)用層協(xié)議(http)同傳輸層協(xié)議(TCP)在數(shù)量上的對應(yīng)關(guān)系是什么?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服