设为首页收藏本站

宽带技术网

 找回密码
 注 册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3039|回复: 4

F420不拆机开telnet研究,求web_shell_cmd.gch等文件

[复制链接]
F420, V3.2x 固件,telnet, ftp等权限全部被关,web_shell_cmd.gch被移除,不拆机开telnet服务,以下是一些研究及设想:7 t* h* u! b  w4 G, @
# k1 `5 [) \0 |
* l' v, E& `; \8 p" R9 o
: ~. @) @# {( g

5 C& Q6 E/ d, H: _7 [3 |: _研究了网上能找到的web_shell_cmd.gch 文件,发现发送命令应该是这个函数完成:
: B& I) m, B* D: w' z
  c6 d' K  j' q0 f% i' [. p. i4 I. M6 n& |
function pageSubmit(); P; l' e  p9 D5 z6 M
{
! F( Z* k) @2 ^% ?  b$ pjslDisable("Btn_Submit"); //将提交按钮状态设置为无效* W! s* \) C1 _# E5 d. N  J
pageSetValue(); //将“Frm_Cmd”输入框中输入的命令传给对象“Cmd”,这是一个隐藏的输入框,$ u3 }/ {7 P' ], w& s. P
setValue("IF_ACTION","apply"); //将值“apply”传递给“IF_ACTION”对象,这也是一个隐藏的输入框
. S) F% D0 U4 u( @" A1 H' V& ~9 P  ~getObj("running").style.display = ""; //设置运行状态等,无关紧要- R  Y3 |3 a. `5 j
getObj("running_title").innerHTML = "it is running, please wait..."; //设置运行状态等,无关紧要
' K* s% n6 x0 bgetObj("fSubmit").submit(); //提交表单fSubmit到服务器,这是个隐藏的表单
8 |* E9 ~$ h4 _- U3 _- Y}# W! i; Y  S% U  {9 j; l
. l, u5 q" c5 [) X% f4 A6 P5 Q
下面是web_shell_cmd.gch中的类似ASP等脚本的动态代码,当浏览器请求web_shell_cmd.gch页面时,先运行这段代码,生成对应的html代码再传送给浏览器显示,浏览器提交命令后,在这个例子中,任然是提交给web_shell_cmd.gch页面处理,实际上也就是下面这段代码进行处理。( O) k2 K+ l  o. I' P
9 d8 K% Z3 G9 W9 ~

% y% [6 A, ]- P* V# ]下面来看看这段代码做了什么:
4 F0 I$ }& p* D# u' \* h  C; i, b; _( ]  G- t. }( [% _
<%
. P9 X! [) a, v+ R& SIMPORT FILE "common_gch.gch";
  Y! ?2 a$ l* V8 G5 T& K. Z- ]( zvar FP_ERRORSTR     = "SUCC";$ }6 \- u2 `* H  @: u/ ^! u+ M
var FP_PARANUM      = 2;
: g5 b; U- O- @/ \! Pvar PARA[2] = { "Cmd", "CmdAck" };
; N- D- i' g" l
6 ?$ r, d* C0 A6 @, `create_form_start("fSubmit", "'/web_shell_cmd.gch'");
. X3 t# L' S' }  L8 O3 fcreateBasicHidden();
! q9 B8 K9 O+ f, {create_hidden_newpara(PARA, FP_PARANUM);
4 H3 ]2 R% @2 K" d& Lvar CmdAck="";+ d5 H4 C5 j% [* _% h  \7 y- t6 ^  M
var Cmd = request("Cmd");- T/ ]8 I1 f2 f
var FP_ACTION = request("IF_ACTION");& c6 g+ o3 Y* B3 @* a, S8 O
if(FP_ACTION == "apply"){
2 G1 A- z. u% t* I! C7 TCmdAck = show_shellcmd(Cmd);% M8 E( n9 Z1 {- J$ b9 J
}& \3 J' g# D& j2 p% n5 }& W
getDisplayInstError(FP_ERRORSTR);
  W9 c) {, N7 V& H$ F3 vundoDBSave();
! t$ x8 o  B( z% L
7 _# G# D0 s; d3 z, W6 T0 Jcreate_form_end();
' I0 s; ]; g) ~! r) a, r/ v: `5 ]%>
2 Q0 Z2 W+ D% U( D& R# a, e+ d8 T( V9 ^  a# K: j1 G  U; c

- W( \* J- n+ Y5 h6 rcreate_form_start("fSubmit", "'/web_shell_cmd.gch'");+ ^# F1 X+ `9 t5 B! H2 g
创建表单fSubmit,输入的内容将提交给页面“/web_shell_cmd.gch”9 L. Y& u7 v; K2 }/ U- s. P# X5 n: F+ v
生成的HTML代码:$ d4 V" Z. E6 r' h9 }8 n
<FORM NAME=fSubmit ID=fSubmit METHOD='POST' action='/web_shell_cmd.gch'>) @4 c9 `! f4 ?! N& a( \# z1 i" A
' C, o! A( n  U0 m

: U! B# I/ Q. Z  [% OcreateBasicHidden();, p2 S  T1 Q8 |( l/ @; E5 G$ ^" r/ R
创建如下隐藏的输入框对象并设置初始值:
* Q4 N$ }' V' [, n" mIF_ACTION, ""
, A7 [5 \$ O* Z+ cIF_ERRORSTR, "SUCC"
* h! k/ c/ W( ?0 r# n# e, p( C- fIF_ERRORPARAM, "SUCC"4 F$ Z6 z1 u) q+ t( F" y
IF_ERRORTYPE, -1
( _% Y! V# y# O+ A  b! a生成的HTML代码:: w( Y! |& _8 v, c/ U0 A
! @0 N0 j1 ~$ S7 R/ L9 V
9 e3 b0 y  {9 ]$ S  G
<INPUT type='hidden' name=IF_ACTION     ID=IF_ACTION value=''>
1 i/ w# d% x# J* o9 _/ \6 o4 i<script language=javascript>Transfer_meaning('IF_ACTION','');</script>
" {) b$ j6 r( _3 s<INPUT type='hidden' name=IF_ERRORSTR     ID=IF_ERRORSTR value=''>
5 t' M9 R- w9 Q& M8 J  U<script language=javascript>Transfer_meaning('IF_ERRORSTR','SUCC');</script>. F- n, ]* h9 J2 ~' ?+ f
<INPUT type='hidden' name=IF_ERRORPARAM     ID=IF_ERRORPARAM value=''>
/ z7 S, c7 X  R<script language=javascript>Transfer_meaning('IF_ERRORPARAM','SUCC');</script>
' ^, G- ~! }% S<INPUT type='hidden' name=IF_ERRORTYPE     ID=IF_ERRORTYPE value=''>) t- S7 N0 }: }* \# K: b6 M
<script language=javascript>Transfer_meaning('IF_ERRORTYPE','-1');</script>* t0 x1 T! m# I8 W" M, O: w
; W# r; L& l/ I
0 [' V, s* g& g' e( C. b

; j; q" Q0 |: x6 V. K" p& Qcreate_hidden_newpara(PARA, FP_PARANUM);8 I7 [0 o5 O2 o0 I
生成 ID 分别为 "Cmd", "CmdAck"的隐藏输入框并设置初始值为空4 {/ y# k# k. d, r) V/ n/ Y
) `" j0 x6 c& n6 T4 |3 t- g1 X
生成的HTML代码:
4 v1 `9 B" l& Z- ^; u0 X. U, J0 n# ^8 T) e% \; M8 p6 ]
+ s. V+ T0 X+ u
" i' X6 X: S) G: v$ y0 L- S/ a

  f, \+ X: d6 G  d<INPUT type='hidden' name=Cmd   ID=Cmd value=''>( v/ S3 f9 r6 f( d4 g0 _- X" }8 S
<script language=javascript>Transfer_meaning('Cmd','');</script>' l6 G$ x9 d( b; S( c7 q9 U; R
<INPUT type='hidden' name=CmdAck   ID=CmdAck value=''>4 H; n" t% n, [5 w8 o3 Z, d. b/ Y/ j
<script language=javascript>Transfer_meaning('CmdAck','');</script>7 N$ l! J' X& I6 x, ]

. @9 q. S1 C/ P( n! R; c& L1 x$ m" v8 {
. T1 f- G1 q: H& `: e
; b0 s8 |2 t; i% H# q; k) N
var Cmd = request("Cmd");2 `& y# v9 m! o8 C
var FP_ACTION = request("IF_ACTION");
  G6 ?' L. V7 W9 N$ K$ Z, x$ x0 x这两行代码应该是重点,目前找不到request函数的定义,猜测应该是路由端执行设置命令的函数。
- `% i% z/ m' D5 z( G, v) t8 X+ J7 g' n) z2 ^
CmdAck = show_shellcmd(Cmd);
# {( D8 R: ]& o0 E  p  w/ Q4 ~7 ?- L; o' l+ }. S
找不到show_shellcmd函数的定义,猜测是将执行完成的命令显示在网页的文本框中。4 G' ]. W! f- _. u- q
! e1 ^6 s7 @# x* @7 u! f$ r  L

# A0 X! S6 S, ^  X/ [/ W& KgetDisplayInstError(FP_ERRORSTR);- R  B; W7 J3 U' C9 P$ _

' H1 P* a/ S/ ~4 w- a) `
8 b3 s+ m- X6 V5 \找不到此函数中的某些函数定义,猜测是处理执行命令出错信息显示在网页的文本框中。; b+ i8 ~, c& D
5 d. H1 t8 L+ I7 [5 o5 k' t/ g
undoDBSave();1 v+ n5 C  @8 N: ^
找不到此函数定义。1 i1 Y3 G+ t6 |% J0 B# B

, x' [8 I" h* S( d  }2 pcreate_form_end();; `2 J0 }' R; c" A1 E$ v$ w5 ]
创建表单结尾
: p2 w1 O: w  F; k% K: y0 s+ m; \4 ~生成的HTML代码:: D3 l7 t; U" l0 H
</FORM>
; u# G. }  |# @0 t3 k3 {( w; }) x
以上是web shell页面代码的分析结果,现在由于web_shell_cmd.gch被移除,故无法提交命令给该页面,但是如果其他设置页面也有<% ... %>部分脚本代码的话,应该可以通过这些页面强行提交命令给路由。望已经开启了FTP/telnet服务的朋友能提供一份F420所有网页文件的列表,或者网页文件的打包更好。
6 r& @7 B/ @# M* V3 P" o; m* d+ l
4 G! G+ U4 f% ]8 N
  [4 v# G0 H# e
: v* E! S0 Z6 a# e6 G# o4 Q) t& m+ H; T2 P$ @$ F
发表于 2013-12-20 16:04:12 | 显示全部楼层
楼主看来很专业噶。7 c, s7 O; P. M( T. ~
能不能先用config.bin获取密码后,登录路由器看?
 楼主| 发表于 2013-12-23 10:32:18 | 显示全部楼层
管理密码已获取,但只能通过web操作路由,telnet/ftp等都被封8 {5 m3 C- ]1 j% A; w- g  ^. O, q
已找到一份F420文件 http://www.chinadsl.net/forum.php?mod=viewthread&tid=86776' y$ E: ?5 m' g1 O$ U& O8 R
但里面没有web_shell_cmd.gch, 正在研究~
发表于 2015-1-31 19:14:59 | 显示全部楼层
好专业的撸主。 膜拜
发表于 2015-7-13 13:09:14 | 显示全部楼层
我就是来看看到底能不能用的。
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

QQ|Archiver|手机版|小黑屋|宽带技术网 ( 粤ICP备15054574号  

粤公网安备 44152102000001号

GMT+8, 2017-2-22 14:26 , Processed in 0.566708 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表