1 - (지원되는) 브라우저의 동작 로깅

1 - (지원되는) 브라우저의 동작 로깅

나는 사용한다살쾡이원격 SSH의 웹 브라우저(그래서 저는그래픽 사용자 인터페이스 없음)을 일부 라우터 및 액세스 포인트의 웹 인터페이스에 추가합니다.

테스트한 일부 Ovislink 및 Buffalo 모델에서는 제대로 작동하지만 두 D-Link 모델을 모두 탐색하려고 하면 화면에 아무 것도 나타나지 않습니다.확인하다두 장치 모두에서 첫 번째 단계여야 하지만 Lynx에서는 이 작업을 수행할 것을 요구하지 않습니다. OvisLink 모델은 비밀번호를 요구하지 않지만 Buffalo는 비밀번호를 요구하고 Lynx는 그래야 하기 때문에 "확인"을 요구합니다.

사례D-링크 DWL-2100AP:

 DWL-2100AP

[Blank lines here]

Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

사례D-링크 DAP-2310:

 REFRESH(0 sec): http://192.168.1.231/index.php

[Blank lines here]

Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

이것은GUI 첫 화면(브라우저 팝업분리바우처 창구)DWL-2100AP(구) 모델:

---

이것은 D-Link DAP-2310(웹 페이지 내의 자격 증명)입니다.

---

당신은 가지고 있습니까?방법Lynx에게 이러한 인터페이스에 대한 액세스 권한을 부여하시겠습니까?

추가 테스트:

  • -auth=ID:PASSWD명령에 추가해도 lynx IP동일한 결과가 나타납니다.

더 멀리데이터인터페이스 정보:

  • 두 장치 모두 사용하는 것 같습니다.자바.

curl이것은 DWL-2100AP가 보내는 것으로 보이는 시작 HTML이며 다음을 통해 얻습니다.

<html><head>
<script src="jsMain.js"> </script>
<title>DWL-2100AP</title></head>

<script language='JavaScript'>
document.cookie = 'RpWebID=3c26d7c1';
</script>
<script language='JavaScript'>
function JumpToHmain(){location.replace('/html/HomeWizard.html');}window.setTimeout('JumpToHmain()',1);</script>

DWL-2100AP 시작 웹 페이지(자격증명 입력 후):

http://IPAddress/html/HomeWizard.html

-u username:password컬을 사용하여(포함 여부에 관계없이 ) 다운로드하려고 하면 다음과 같습니다 .

<html>
<head>
<title>Object Not Found</title></head><body>
<h1>Object Not Found</h1>The requested URL '/html/HomeWizard.html' was not found on the RomPager server.<p>Return to <A HREF="">last page</A><p>
</body></html>

DAP-2310의 시작 페이지(자격 증명 요청 페이지):

http://IPAddress/login.php

WGet(직접 URL)을 통해 DWL-2100AP를 다시 시작해 보세요.

    luis@Fresoncio:~$ wget http://admin:[email protected]/Forms/RESET_Switch
 converted 'http://admin:[email protected]/Forms/RESET_Switch?FlagForReboot=' (ANSI_X3.4-1968) -> 'http://admin:[email protected]/Forms/RESET_Switch?FlagForReboot=' (UTF-8)
    --2016-06-07 00:46:42--  http://admin:*password*@192.168.1.232/Forms/RESET_Switch?FlagForReboot=
    Connecting to 192.168.1.232:80... connected.
    HTTP request sent, awaiting response... 303 See Other
    Location: http://192.168.1.232/html/HomeWizard.html [following]
    converted 'http://192.168.1.232/html/HomeWizard.html' (ANSI_X3.4-1968) -> 'http://192.168.1.232/html/HomeWizard.html' (UTF-8)
    --2016-06-07 00:46:42--  http://192.168.1.232/html/HomeWizard.html
    Reusing existing connection to 192.168.1.232:80.
    HTTP request sent, awaiting response... 404 Not Found
    2016-06-07 00:46:42 ERROR 404: Not Found.

Lynx는 필요하지 않다고 보고했습니다.쿠키 허용DWL-2100AP를 검색할 때.

다시 시작 시도의 WireShark/TCPDump 캡처에는 http://192.168.1.232/html/HomeWizard.html아래 설명과 함께 GET이 표시됩니다. 나는 이것이 Base64 인코딩일지도 모른다고 생각합니다.Authorization: Basic XXXXXXXXXXCredentials: admin:MyEditedPassword

RpWebId=3c268b4c...그런 다음 --post-data 와 함께 WGet을 사용해 보았습니다 FlagForReboot=&Submit=+Restart+.

~$ wget 192.168.1.232/Forms/RESET_Switch -post-data='RpWebId=3c268b4c' --post-data='FlagForReboot=&Submit=+Restart+'
converted 'http://192.168.1.232/Forms/RESET_Switch' (ANSI_X3.4-1968) -> 'http://192.168.1.232/Forms/RESET_Switch' (UTF-8)
--2016-06-07 10:29:25--  http://192.168.1.232/Forms/RESET_Switch
Connecting to 192.168.1.232:80... connected.
HTTP request sent, awaiting response... 303 See Other
Location: http://192.168.1.232/html/HomeWizard.html [following]
converted 'http://192.168.1.232/html/HomeWizard.html' (ANSI_X3.4-1968) -> 'http://192.168.1.232/html/HomeWizard.html' (UTF-8)
--2016-06-07 10:29:25--  http://192.168.1.232/html/HomeWizard.html
Reusing existing connection to 192.168.1.232:80.
HTTP request sent, awaiting response... 404 Not Found
2016-06-07 10:29:25 ERROR 404: Not Found.

다음은 로그인 순간의 캡처입니다.

GET /html/HomeWizard.html HTTP/1.1
Host: 192.168.1.232
User-Agent: Mozilla/5.0 (X11; Linux armv7l; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.6.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.232/
Cookie: RpWebID=3c267896
Connection: keep-alive
Authorization: Basic YWRtaWAAAAAhQXBpYQ==

비밀번호 부분은 마지막 부분으로 (The is my, to hide the real 비밀번호)로 끝납니다 YWRta.... 이렇게 하면 쉘이 나에게 .Q==AAAAAecho YWRtaWAAAAAhQXBpYQ== | base64 --decodeadmin:MyPassword

재부팅 장치 페이지는 다음과 같습니다.

관리 다시 시작

이것은 데이터를 전송하지 않고 CURL을 통해 재부팅 장치 페이지에 액세스하려는 시도입니다(JigglyNaga 답변 참조) FlagForReboot.

$ IP_ADDRESS=192.168.1.232
$ curl -b "$COOKIE" -u "admin:MySecretPassword" $IP_ADDRESS/html/MntRestartSystem.html
<html><head>... etc

이것은 FlagForReboot데이터를 보냅니다(동일하다고 맹세합니다):

$ IP_ADDRESS=192.168.1.232
$ curl -b "$COOKIE" -u "admin:MySecretPassword" --data "FlagForReboot=&Submit=+Restart+" $IP_ADDRESS/html/MntRestartSystem.html
<html><head>
<title>DWL-2100AP</title><meta HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<LINK REL=stylesheet TYPE="text/css" HREF="web_style.css">
<script language="JavaScript" src="jsMain.js"></script>
<script language="JavaScript">

function ShowMessage(s){
    //  alert("Switch is rebooting and Web will be disconnected!");
  var Msg='Device will reboot and web will be disconnected! Continue?';
  if(confirm(Msg))
  {
    return true;
  }
  else
    return false;
}
</script>
<style type="text/css">
font{
font-family:"Arial";
font-size:10pt;
}
</style>
</head><body BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" onLoad="Change_Device_Name()">
<table width="75%" border="0" cellspacing="0" cellpadding="0" align=center>
  <tr>
    <td><div align=center><img id="img_logo" src="" width="765" height="95"></div></td></tr><tr>
    <td><table width=765 border=0 cellpadding=0 cellspacing=0 align=center>
        <tr>
          <td rowspan=9 width="20" background="/Images/down_01.gif">&nbsp; </td><td rowspan=2 width="133"> <img id="img_ap" src="" width=133 height=75></td><td rowspan=2 width="25" background="/Images/down_03.jpg">&nbsp; </td><td width="21"> <img src="/Images/tools_04.jpg" width=21 height=49></td><td width="522"> <img src="/Images/tools_over_05.jpg" width=522 height=49 usemap="#MapMap" border="0"></td><td width="19"> <img src="/Images/tools_06.jpg" width=19 height=49></td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr><tr>
          <td width="21" background="/Images/down_14.gif">&nbsp; </td><td rowspan=8 width="522" valign=top>
<FORM METHOD="POST" ACTION="/Forms/RESET_Switch"><INPUT TYPE="HIDDEN" NAME="FlagForReboot" VALUE="" id="FlagForReboot">              <table width="100%" border="0" height="100">
                 <tr >
                  <td colspan=2 align=left height="24" bordercolorlight="#FFFFFF" bordercolordark="#000000"><b><font face=Arial color=#8bacb1 size=2>
                    System Settings</font> </b></td></tr><tr>
          <td align=left height="20" width=200>
            <font face=Arial size=2> Apply Settings and Restart</font>
           </td><td><INPUT TYPE="SUBMIT" NAME="Submit" VALUE=" Restart " onClick="return ShowMessage()">            </td></tr></table></form><FORM METHOD="POST" ACTION="/Forms/RESTORE_Switch"><INPUT TYPE="HIDDEN" NAME="FlagForReboot" VALUE="" id="FlagForReboot">              <table width="100%" border="0" height="110">

        <tr>
                  <td align=left height="25" width=200>
                        <font face=Arial size=2>  Restore factory settings  </font>
                  </td><td><INPUT TYPE="SUBMIT" NAME="Submit" VALUE=" Restore " onClick="return ShowMessage()">                   </td></tr><tr>
<td height=20 colspan=2>
<div align=right><a href=/html/help_tools.html#02 target=_blank><img src=/Images/help_p.jpg width=36 height=52 border=0></a></div></td></tr></table></form></td><td width="19"> <img src="/Images/down_10.jpg" width=19 height=26></td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr><tr>
          <td class="style1" width="133" height="57"  align=center onClick="javascript:Link('MgtUserAccount.html')">Admin</td><td width="25" background="/Images/down_03.jpg" height="42">&nbsp; </td><td width="21" background="/Images/down_14.gif" height="42">&nbsp; </td><td width="19" background="/Images/down_40.gif" height="42">&nbsp; </td><td width="25" background="/Images/down_11.gif" height="42">&nbsp; </td></tr><tr>
          <td class="style2"  width="133" height="57" valign=middle align=center onClick="javascript:Link('MntRestartSystem.html')">System</td><td width="25" background="/Images/down_03.jpg">&nbsp; </td><td width="21" background="/Images/down_14.gif">&nbsp; </td><td width="19" background="/Images/down_40.gif">&nbsp; </td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr><tr>
          <td class="style1"  width="133" height="57" valign=middle align=center onClick="javascript:Link('MntUpdateFirmware.html?1')">Firmware</td><td width="25" background="/Images/down_03.jpg">&nbsp; </td><td width="21" background="/Images/down_14.gif">&nbsp; </td><td width="19" background="/Images/down_40.gif">&nbsp; </td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr><tr>
          <td class="style1"  width="133" height="57" valign=middle align=center onClick="javascript:Link('MntConfigurationFile.html?0,0,0,0,0,0,0,0,0')">Cfg File</td><td width="25" background="/Images/down_03.jpg" height="6">&nbsp; </td><td width="21" background="/Images/down_14.gif" height="6">&nbsp; </td><td width="19" background="/Images/down_40.gif" height="6">&nbsp; </td><td width="25" background="/Images/down_11.gif" height="6">&nbsp; </td></tr>        <tr>
          <td width="133" height="57" valign=middle align=center  background="/Images/down_37.gif">&nbsp;</td><td width="25" background="/Images/down_03.jpg">&nbsp;</td><td width="21" background="/Images/down_14.gif">&nbsp; </td><td width="19" background="/Images/down_40.gif">&nbsp; </td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr>        <tr>
          <td width="133" background="/Images/down_37.gif">&nbsp;</td><td width="25" background="/Images/down_03.jpg">&nbsp;</td><td width="21" background="/Images/down_14.gif">&nbsp; </td><td width="19" background="/Images/down_40.gif">&nbsp; </td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr>
        <tr>
          <td width="133" background="/Images/down_37.gif">&nbsp;</td><td width="25" background="/Images/down_03.jpg">&nbsp;</td><td width="21" background="/Images/down_14.gif">&nbsp; </td><td width="19" background="/Images/down_40.gif">&nbsp; </td><td width="25" background="/Images/down_11.gif">&nbsp; </td></tr><tr>
          <td colspan=6 rowspan=2> <img src="/Images/down_43.jpg" width=740 height=44></td><td width="25"> <img src="/Images/down_45.gif" width="25" height="17"></td></tr><tr>
          <td width="25"> <img src="/Images/down_44.gif" width=25 height=27></td></tr></table></td></tr></table><map id="MapMap" name="MapMap">
  <area shape="rect" coords="17,17,82,45" href="/html/HomeWizard.html" target="_self"/>
  <area shape="rect" coords="109,18,205,42" href="/html/CfgWLanParam.html?1" target="_self"/>
  <area shape="rect" coords="232,19,289,46" href="/html/MgtUserAccount.html" target="_self"/>
  <area shape="rect" coords="346,18,405,45" href="/html/DeviceInfo.html" target="_self"/>
  <area shape="rect" coords="455,18,501,47" href="/html/help_men.html" target="_self"/>
</map>

</body></html>

그리고 이게 다야TCP 덤프WireShark에 표시된 대로 해당 순간(관련이 있어 보이는 부분)을 캡처합니다.

Frame 4: 517 bytes on wire (4136 bits), 517 bytes captured (4136 bits)
Ethernet II, Src: 00:00:00_00:09:77 (00:00:00:00:09:77), Dst: D-LinkIn_24:f7:6d (c8:d3:a3:24:f7:6d)
Internet Protocol Version 4, Src: 192.168.1.99, Dst: 192.168.1.232
Transmission Control Protocol, Src Port: 44981 (44981), Dst Port: 80 (80), Seq: 1, Ack: 1, Len: 451
Hypertext Transfer Protocol
    GET /html/MntRestartSystem.html HTTP/1.1\r\n
    Host: 192.168.1.232\r\n
    User-Agent: Mozilla/5.0 (X11; Linux armv7l; rv:38.0) Gecko/20100101 Firefox/38.0 Iceweasel/38.6.0\r\n
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
    Accept-Language: en-US,en;q=0.5\r\n
    Accept-Encoding: gzip, deflate\r\n
    Referer: http://192.168.1.232/html/MgtUserAccount.html\r\n
    Cookie: RpWebID=3c26e560\r\n
    Authorization: Basic YWRtaW46VmlhQXBpYQ==\r\n
    Connection: keep-alive\r\n
    \r\n
    [Full request URI: http://192.168.1.232/html/MntRestartSystem.html]
    [HTTP request 1/2]
    [Response in frame: 15]
    [Next request in frame: 17]

0000   47 45 54 20 2f 68 74 6d 6c 2f 4d 6e 74 52 65 73  GET /html/MntRes
0010   74 61 72 74 53 79 73 74 65 6d 2e 68 74 6d 6c 20  tartSystem.html 
0020   48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a 20  HTTP/1.1..Host: 
0030   31 39 32 2e 31 36 38 2e 31 2e 32 33 32 0d 0a 55  192.168.1.232..U
0040   73 65 72 2d 41 67 65 6e 74 3a 20 4d 6f 7a 69 6c  ser-Agent: Mozil
0050   6c 61 2f 35 2e 30 20 28 58 31 31 3b 20 4c 69 6e  la/5.0 (X11; Lin
0060   75 78 20 61 72 6d 76 37 6c 3b 20 72 76 3a 33 38  ux armv7l; rv:38
0070   2e 30 29 20 47 65 63 6b 6f 2f 32 30 31 30 30 31  .0) Gecko/201001
0080   30 31 20 46 69 72 65 66 6f 78 2f 33 38 2e 30 20  01 Firefox/38.0 
0090   49 63 65 77 65 61 73 65 6c 2f 33 38 2e 36 2e 30  Iceweasel/38.6.0
00a0   0d 0a 41 63 63 65 70 74 3a 20 74 65 78 74 2f 68  ..Accept: text/h
00b0   74 6d 6c 2c 61 70 70 6c 69 63 61 74 69 6f 6e 2f  tml,application/
00c0   78 68 74 6d 6c 2b 78 6d 6c 2c 61 70 70 6c 69 63  xhtml+xml,applic
00d0   61 74 69 6f 6e 2f 78 6d 6c 3b 71 3d 30 2e 39 2c  ation/xml;q=0.9,
00e0   2a 2f 2a 3b 71 3d 30 2e 38 0d 0a 41 63 63 65 70  */*;q=0.8..Accep
00f0   74 2d 4c 61 6e 67 75 61 67 65 3a 20 65 6e 2d 55  t-Language: en-U
0100   53 2c 65 6e 3b 71 3d 30 2e 35 0d 0a 41 63 63 65  S,en;q=0.5..Acce
0110   70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69  pt-Encoding: gzi
0120   70 2c 20 64 65 66 6c 61 74 65 0d 0a 52 65 66 65  p, deflate..Refe
0130   72 65 72 3a 20 68 74 74 70 3a 2f 2f 31 39 32 2e  rer: http://192.
0140   31 36 38 2e 31 2e 32 33 32 2f 68 74 6d 6c 2f 4d  168.1.232/html/M
0150   67 74 55 73 65 72 41 63 63 6f 75 6e 74 2e 68 74  gtUserAccount.ht
0160   6d 6c 0d 0a 43 6f 6f 6b 69 65 3a 20 52 70 57 65  ml..Cookie: RpWe
0170   62 49 44 3d 33 63 32 36 65 35 36 30 0d 0a 41 75  bID=3c26e560..Au
0180   74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73  thorization: Bas
0190   69 63 20 59 57 52 74 61 57 34 36 56 6d 6c 68 51  ic YWRtaW46VmlhQ
01a0   58 42 70 59 51 3d 3d 0d 0a 43 6f 6e 6e 65 63 74  XBpYQ==..Connect
01b0   69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76 65 0d  ion: keep-alive.
01c0   0a 0d 0a                                         ...

Reset이제 CURL을 통해 버튼을 "누르 십시오 "(동일한 결과:

$ curl -v -u "admin:MySecretPassword" -b "$COOKIE" --data "FlagForReboot=&Submit=+Restart+" $IP_ADDRESS/Forms/RESET_Switch
* Hostname was NOT found in DNS cache
*   Trying 192.168.1.232...
* Connected to 192.168.1.232 (192.168.1.232) port 80 (#0)
* Server auth using Basic with user 'admin'
> POST /Forms/RESET_Switch HTTP/1.1
> Authorization: Basic YWRtaW46VmlhQXBpYQ==
> User-Agent: curl/7.38.0
> Host: 192.168.1.232
> Accept: */*
> Cookie: RpWebID=3c270622
> Content-Length: 31
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 31 out of 31 bytes
< HTTP/1.1 303 See Other
< Location: http://192.168.1.232/html/HomeWizard.html
< Content-Length: 0
* Server Allegro-Software-RomPager/4.06 is not blacklisted
< Server: Allegro-Software-RomPager/4.06
<
* Connection #0 to host 192.168.1.232 left intact

-LCURL 옵션을 사용하면 다른 결과가 나타납니다.

$ curl -b "$COOKIE" --data "FlagForReboot=&Submit=+Restart+" $IP_ADDRESS/Forms/RESET_Switch -L
<html><head>
<title>DWL-2100AP</title><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<link rel=stylesheet type="text/css" href="web_style.css">
<script type="text/javascript" src="jsMain.js"></script>
<script type="text/javascript" src="WizardScript.js"></script>
<style type="text/css">
font{
font-family:"Arial";
font-size:10pt;
}

td.h30{
height:30px;
}

td.h60{
height:60px;
}
td.h80{
height:80px;
}
</style>
</head><body bgcolor="#ffffff" topmargin="0" onLoad="InitialSettings()">
<table border="0" align=center cellpadding="0" cellspacing="0">
        <tr>
                <td><img id="img_logo" src="" alt=""></td></tr><tr>
                <td><table border="0" align=center cellspacing="0" cellpadding="0">
                                <tr><!-- row 1 -->
                                        <td width=20 rowspan=3 background="/Images/down_01.gif"></td><td width=133 rowspan=2><img id="img_ap" src="" border="0" alt=""/></td><td width=25 background="/Images/down_03.jpg"></td><td width=21 background="/Images/down_04.jpg"></td><td width=522><img src="/Images/down_05.jpg" border="0" usemap="#MapMap"/></td><td width=19 background="/Images/down_06.jpg"></td><td width=25 background="/Images/down_11.gif"></td></tr><tr><!-- row 2 -->
                                        <td background="/Images/down_03.jpg"></td><td height="26" background="/Images/down_14.gif"></td><td rowspan=3 valign=top>

<FORM METHOD="POST" ACTION="/Forms/FormWizard"><table border="0" width="100%" align=center cellpadding="0" cellspacing="0">
<tr>
<td colspan=2>
<!-- Beginning of Contents -->
<table width=510 border="0">
  <tr>
    <td colspan=2>
      <font color="#8bacb1"><b>Setup Wizard</b></font>
     <INPUT TYPE="HIDDEN" NAME="Run_Wizard" VALUE="0" id="Run_Wizard">    </td></tr>  <tr>
    <td height="150">
      <b><font>
      The <span id="APName0"></span>&nbsp;is a <span id="Device_Type"></span>.
      The setup wizard will guide you through the configuration of the
      <span id="APName1"></span>. The <span id="APName2"></span>'s easy
      setup will allow you to have wireless access within minutes.
      Please follow the setup wizard step by step to configure
      the <span id="APName3"></span>.
      </font></b>
    </td></tr><tr>
    <td>&nbsp;</td></tr><tr>
    <td align=center>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE=" Run Wizard " id="Run_Wizard" onClick="formSubmit(1)" align=right>    </td></tr><tr>
    <td align=right>
      <a href="help_home.html#01" target=_blank>
      <img src="/Images/help_p.jpg" width="36" height="52" border="0">
      </a></td></tr>

</table><!-- End of Contents -->
</td></tr></table></form>
                                        </td><td background="/Images/down_10.jpg"></td><td background="/Images/down_11.gif"></td></tr><tr><!-- row 3 -->
                                        <td valign=top background="/Images/down_37.gif">
                                                <table width="100%" border="0" cellspacing="0" cellpadding="0" align=center>
                                                        <tr>
                                                                <td class="style2" align=center valign=middle onClick="javascript:Link('HomeWizard.html')">Wizard</td></tr><tr>
                                                                <td class="style1" align=center valign=middle onClick="javascript:Link('Wireless.html?1')">Wireless</td></tr><tr>
                                                                <td class="style1" align=center valign=middle onClick="javascript:Link('CfgIpSetup.html')">LAN</td></tr></table></td><td background="/Images/down_03.jpg"></td><td background="/Images/down_14.gif"></td><td background="/Images/down_40.gif"></td><td background="/Images/down_11.gif"></td></tr><tr><!-- row 4 -->
                                        <td height="150" background="/Images/down_37.gif"></td><td background="/Images/down_37.gif"></td><td background="/Images/down_03.jpg"></td><td background="/Images/down_14.gif"></td><td background="/Images/down_40.gif"></td><td background="/Images/down_11.gif"></td></tr><tr><!-- row 5 -->
                                        <td colspan=6 rowspan=2><img src="/Images/down_43.jpg" border="0"></td><td><img src="/Images/down_45.gif" border="0"></td></tr><tr>
                                        <td><img src="/Images/down_44.gif" border="0"></td></tr></table></td></tr></table><map id="MapMap" name="MapMap">
  <area shape="rect" coords="17,17,82,45" href="/html/HomeWizard.html" target="_self"/>
  <area shape="rect" coords="109,18,205,42" href="/html/CfgWLanParam.html?1" target="_self"/>
  <area shape="rect" coords="232,19,289,46" href="/html/MgtUserAccount.html" target="_self"/>
  <area shape="rect" coords="346,18,405,45" href="/html/DeviceInfo.html" target="_self"/>
  <area shape="rect" coords="455,18,501,47" href="/html/help_men.html" target="_self"/>
</map>
<script type="text/javascript">
var Run_Wizard = document.getElementById("Run_Wizard");
var NewPwd = document.getElementById("NewPwd");
var CfmNewPwd = document.getElementById("CfmNewPwd");
var channel = document.getElementById("channel");
var WizardRootSsid = document.getElementById("WizardRootSsid");
var no = document.getElementById("No");
var wpa = document.getElementById("wpa");
var psk = document.getElementById("psk");
var keytype    = document.getElementById("Wizard_KeyType");
var KeySize1 = document.getElementById("KeySize1");
var KeySize2 = document.getElementById("KeySize2");
var KeySize3 = document.getElementById("KeySize3");
var key = document.getElementById("Key");
var passphrase = document.getElementById("passphrase");
var cipher     = document.getElementById("cipher");
var groupkey   = document.getElementById("groupkey");
</script>

</body></html>

그러면 다시 시작하기 위한 확인 화면이 나타납니다.

-

요청 시 더 많은 데이터를 추가할 수 있습니다.

답변1

불행하게도 요즘 많은 라우터에는 lynx가 지원하지 않는 자바스크립트가 필요합니다.

그러나 대안으로 SSH를 통해 터널을 사용하고 실제 브라우저를 사용하여 액세스할 수 있어야 합니다. 예를 들어, 라우터 IP(예: 192.168.1.1:80)에서 포트 8888을 포트 80으로 터널링하는 경우입니다. SSH 연결을 설정한 후 로컬 컴퓨터에서 "실제" 브라우저(js가 포함된 그래픽 브라우저)를 탐색하여 http://127.0.0.1:8888원격 라우터의 일반 웹 페이지에 액세스합니다. 이는 원격 SSH 호스트를 프록시로 사용합니다.

이와 같은 브라우저를 사용하면 firefox실제로 매우 쉽게 프록시를 사용하도록 설정할 수 있으며 SSH가 프록시를 SOCKS설정 하고 로컬 네트워크에서 라우터 액세스 권한에 이르기까지 모든 것을 포함하여 원격 호스트를 네트워크 프록시로 투명하게 사용할 수 있습니다. SOCKS특정 SSH 클라이언트를 사용하여 SOCKS(동적 포트 전달이라고도 함)를 설정하는 방법과 firefox연결 대화 상자에서 프록시 연결을 설정하는 방법을 알아보세요. 그런 다음 결국 firefoxSOCKS 프록시를 사용하도록 지시할 수 있어야 합니다 127.0.0.1:1080(예:)

(유사한 URL을 사용하려고 하면 Lynx가 더 나아갈 수 있지만 곧 문제가 발생할 것으로 예상됩니다.)http://admin:[email protected]js

답변2

많은 라우터는 lynx다른 터미널 기반 브라우저가 처리할 수 없는 페이지를 반환합니다.

이를 위해 웹 스크래핑 스크립트를 작성할 수 있습니다. 확장됨이 웹 스크래핑 방법, 하지만 자세히 설명하지 않고cURL HTTP 스크립팅 가이드, 내 접근 방식은 다음과 같습니다.


1 - (지원되는) 브라우저의 동작 로깅

다음과 같은 패킷 캡처 도구를 사용할 수 있습니다.tcpdump(1)또는라인샤크, 또는 브라우저에서 이와 유사한 것Firefox용 개발자 도구. tcpdump/wireshark는 이식 가능하지만 읽을 수 없는 pcap 형식으로 모든 것을 캡처합니다. 특히 응답이 압축된 경우 브라우저 내에서 데이터를 이해하기가 더 쉬울 수 있습니다. 또한 방문하는 각 페이지의 사본을 저장하세요. 3단계에서 필요할 수 있습니다.

2 - 명령줄에서 동일한 요청 보내기

curl1단계에서 생성된 각 HTTP 요청에 대해 이를 사용하거나 전송하는 방법을 파악 wget하고 이를 스크립트에 넣습니다.

당신은해야 할 수도 있습니다HTTP 사양광범위한 옵션을 탐색해 보세요.곱슬또는얻다그러나 다른 모든 방법이 실패하면 두 도구 모두 원하는 헤더( curl -H "Name: Value", wget --header "Name: Value")를 보낼 수 있습니다. /confirm 을 사용하여 curl -v보내고 받은 내용을 확인하세요 wget -d. 요청이 1단계와 동일한 응답을 받지 못한다면 뭔가를 놓친 것일 수 있습니다.

한동안 이후 요청 중 하나를 처리했다면 사이트/장치가 시간 초과되었거나 세션이 무효화되었을 수 있으며 먼저 이전 요청 중 일부(예: 로그인)를 반복해야 합니다.

최종 요청을 보낸 후 원하는 결과를 얻었으면 좋습니다. 4단계로 진행하세요.

3 - 변경되는 모든 항목 업데이트

만약에정확히 똑같다HTTP 요청이 동일한 응답을 제공하지 않으면 요청의 일부 부분이 더 이상 유효하지 않으므로 변경해야 합니다. 1단계를 반복하여 동일한 작업을 다시 기록하고 요청과 응답의 차이점을 확인하세요.

요청의 모든 내용은 다음에서 제공됩니다.어딘가에. 변화하는 각 부분의 출처를 추적해야 합니다. 모든 HTTP 응답(전체 HTML 페이지, JavaScript, CSS, JSON 조각)을 보고 문자열의 출처를 찾으세요. 페이지 이름과 GET/POST 매개변수는 대부분 HTML에서 가져오고 쿠키는 HTTP 헤더에서 가져오지만 JavaScript는 둘 중 하나를 설정할 수 있습니다.

추적한 후에는 앞으로 자동으로 새로운 값을 찾아야 합니다. // 선택한 텍스트 처리 언어를 사용하여 검색된 페이지에서 예측할 수 없는 sed마크업을 추출합니다 awk. // 현재 타임스탬프를 생성합니다. date +"format".

4 - (선택 사항) 불필요한 부품 제거

브라우저는 수십 개의 요청을 생성할 수 있으며 동일한 최종 결과를 얻기 위해 요청을 모두 보낼 필요는 거의 없습니다. 예를 들어 페이지를 표시하지 않으면 이미지와 CSS에 관심이 없는 것입니다. 중요하지 않은 요청을 모두 제거하고 스크립트가 여전히 작동하는지 확인하세요. 경험을 통해 어떤 요청이 선택 사항인지 알게 될 것입니다.


지금까지 게시한 정보를 사용하면 DAP-2310에 로그인하려면 POST 요청이 필요합니다.

wget $IP_ADDRESS/login.php --save-cookies cookies.txt --keep-session-cookies \
  --post-data "ACTION_POST=login&f_date=MM/DD/YY&f_time=HH:MM:SS&LOGIN_USER=username&LOGIN_PASSWD=password&login=+Login+"

(현재 날짜와 시간을 사용하여 형식은 다음과 같습니다.날짜(1)) 그러나 더 많은 단계가 포함될 수 있습니다.

DWL-2100AP 패킷 캡처는 사용 중임을 보여줍니다.HTTP 기본 인증, JavaScript로 설정된 맞춤 쿠키와 결합됩니다. 이렇게 하려면 로그인하기 전에 첫 번째 페이지에서 쿠키를 가져와야 합니다.

# obtain the cookie
COOKIE=$(curl $IP_ADDRESS |grep "cookie = "|cut -d"'" -f2)

# log in
curl -b "$COOKIE" --anyauth -u "admin:$PASSWORD" $IP_ADDRESS/html/HomeWizard.html 

# fetch the restart form; may not be necessary
curl -b "$COOKIE" $IP_ADDRESS/html/MntRestartSystem.html

# send the restart request
curl -b "$COOKIE" --data "FlagForReboot=&Submit=+Restart+" $IP_ADDRESS/Forms/RESET_Switch

관련 정보