设为首页收藏本站

宽带技术网

 找回密码
 注 册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3249|回复: 4

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

[复制链接]
F420, V3.2x 固件,telnet, ftp等权限全部被关,web_shell_cmd.gch被移除,不拆机开telnet服务,以下是一些研究及设想:! E9 K! L6 \3 M! Y, N" R& T

' Q5 g) Z8 L1 o7 x. x7 ^1 O. q
! l# k( f/ a0 I* y* {' L  A
  p/ t! C; U# y
2 \% n4 q* F; k% c% x- T研究了网上能找到的web_shell_cmd.gch 文件,发现发送命令应该是这个函数完成:
6 A( O( Q5 y5 f8 {* h8 g: B
6 J9 a) i( |9 H+ \
: Y9 f7 u1 ~/ S& p( e0 p9 efunction pageSubmit()
& l4 N' ^  u7 l: M{
0 Y$ I' S- B( d% q8 k: ajslDisable("Btn_Submit"); //将提交按钮状态设置为无效' V. o) H9 N' d* B
pageSetValue(); //将“Frm_Cmd”输入框中输入的命令传给对象“Cmd”,这是一个隐藏的输入框,& F. J& N" R+ _% @- m# u
setValue("IF_ACTION","apply"); //将值“apply”传递给“IF_ACTION”对象,这也是一个隐藏的输入框
$ h% k4 w4 w& D2 l  f: r8 y/ n0 CgetObj("running").style.display = ""; //设置运行状态等,无关紧要9 j6 f" t& F  q
getObj("running_title").innerHTML = "it is running, please wait..."; //设置运行状态等,无关紧要" ^0 [5 r1 _! Q! X  |, U
getObj("fSubmit").submit(); //提交表单fSubmit到服务器,这是个隐藏的表单3 h& m0 V% S) k
}
6 f* }% X8 l7 \$ _/ {! v- e1 k6 j+ U9 F3 k
下面是web_shell_cmd.gch中的类似ASP等脚本的动态代码,当浏览器请求web_shell_cmd.gch页面时,先运行这段代码,生成对应的html代码再传送给浏览器显示,浏览器提交命令后,在这个例子中,任然是提交给web_shell_cmd.gch页面处理,实际上也就是下面这段代码进行处理。$ q" \2 t2 q( Y

, @) O" W1 @. R* w8 e! M% a. C( o4 s! Q: v0 ~  |
下面来看看这段代码做了什么:
/ [3 x0 N( e4 Y! |' m
% Z' r3 C+ i, J. w8 c3 w0 i<%3 Y: j# R3 I0 a# R8 h  S
IMPORT FILE "common_gch.gch";9 H9 `9 e; H3 i3 Q' f* O) |/ y
var FP_ERRORSTR     = "SUCC";
- S$ V. {' n5 y& C' V4 g1 qvar FP_PARANUM      = 2;
' p( L! \1 G& Y( @' Avar PARA[2] = { "Cmd", "CmdAck" };
8 T/ |. v: T- f2 }
6 t: v, U/ ]' w6 f5 Qcreate_form_start("fSubmit", "'/web_shell_cmd.gch'");, {8 ~2 Y7 r6 V- Y8 G
createBasicHidden();3 [- x. `1 h; U% j6 d" a
create_hidden_newpara(PARA, FP_PARANUM);
. s$ T- ]: r8 S- nvar CmdAck="";
2 Z7 B0 y% Q* A8 S( L; rvar Cmd = request("Cmd");
9 j: t! v1 c) S. tvar FP_ACTION = request("IF_ACTION");" E  V7 P( S7 u6 S6 P  n
if(FP_ACTION == "apply"){
% b- B% I# A* w3 E- m+ bCmdAck = show_shellcmd(Cmd);
: A- p( D. r3 \7 d}
' L  D1 K! O9 |$ ^& F0 ngetDisplayInstError(FP_ERRORSTR);/ {. ]( n7 k7 {$ C8 c( `$ w
undoDBSave();$ G7 Q# t- f1 a) z

  P) q: C7 s% y& m! k0 H/ K7 Dcreate_form_end();
- i3 ^2 F! j7 F4 V" N4 t& V%>- B/ X5 Z3 j$ y! s. Q6 k/ G

9 v" F, H9 p8 P4 H/ r6 n! Q* a; r# z4 L5 ]& M* h% b6 O% u- l  E4 s
create_form_start("fSubmit", "'/web_shell_cmd.gch'");( s: v8 l9 c" V$ z, _$ G
创建表单fSubmit,输入的内容将提交给页面“/web_shell_cmd.gch”
4 U$ B8 u! l: T1 P  X生成的HTML代码:, x1 ]! r6 t: a. x6 q0 s8 E
<FORM NAME=fSubmit ID=fSubmit METHOD='POST' action='/web_shell_cmd.gch'>$ Z1 R1 e& J2 N& D: v
" l8 _% Z8 B# Y6 k
/ F$ b# [* ~. w) r. S
createBasicHidden();9 N) h2 p" o% b8 L7 p) w
创建如下隐藏的输入框对象并设置初始值:  i* A2 x% ]2 ~: ?
IF_ACTION, ""
" ?) p5 z& k4 b5 @% W1 b8 l& DIF_ERRORSTR, "SUCC"
" v3 _# D" T( C, {IF_ERRORPARAM, "SUCC"3 X9 W! E2 d( y
IF_ERRORTYPE, -1
6 d: s- T7 A/ t0 \: l生成的HTML代码:) I# ~9 I7 i8 I, B% i

$ o3 v1 m9 }0 ?# w
/ Z) b1 I# P( K<INPUT type='hidden' name=IF_ACTION     ID=IF_ACTION value=''>
% P# U# F: Z- L# ?<script language=javascript>Transfer_meaning('IF_ACTION','');</script>* z: K, ^8 ?. |" s+ j* g/ P
<INPUT type='hidden' name=IF_ERRORSTR     ID=IF_ERRORSTR value=''>4 c. G4 U+ g! j  d" \2 V
<script language=javascript>Transfer_meaning('IF_ERRORSTR','SUCC');</script>
7 A: Q! X2 T0 i6 c7 b<INPUT type='hidden' name=IF_ERRORPARAM     ID=IF_ERRORPARAM value=''>- w- ~8 h9 Y: t3 o! M
<script language=javascript>Transfer_meaning('IF_ERRORPARAM','SUCC');</script>- _9 _1 V  j! J* O4 S" b; o2 @
<INPUT type='hidden' name=IF_ERRORTYPE     ID=IF_ERRORTYPE value=''>
/ r" h0 |  b" W4 u5 z3 }6 ?<script language=javascript>Transfer_meaning('IF_ERRORTYPE','-1');</script>& A! t" {% ]4 C5 h6 {& r
$ r, Z/ u9 N  R0 s" _% Y% e' s
: j3 \. H2 ^- G# `" G5 V7 ^; v9 Z  Q
4 S% ^6 W$ _3 F$ h0 z5 @* M: X
create_hidden_newpara(PARA, FP_PARANUM);
6 |- N, n4 M5 Y生成 ID 分别为 "Cmd", "CmdAck"的隐藏输入框并设置初始值为空6 A7 R. i. p, ]6 v5 }4 z

" n  ~  C& n8 E3 S; a生成的HTML代码:5 Y. F' J5 H: A: G# a
  V; `" R( F, M0 V/ q+ G0 l

0 s: A8 b& F, G/ \7 ?2 q2 L( n
$ w; F# q+ x! T. n) s; P0 M
7 b) ]; c3 W( h  D; Z: [) U<INPUT type='hidden' name=Cmd   ID=Cmd value=''>8 _' E  O  A- @( q6 U* J2 q
<script language=javascript>Transfer_meaning('Cmd','');</script>
/ g4 ~* _3 _. P3 @<INPUT type='hidden' name=CmdAck   ID=CmdAck value=''>
2 \9 ]1 W4 I' U' N% ]; Q" V<script language=javascript>Transfer_meaning('CmdAck','');</script>
  |8 a! x8 O2 ?0 F* K
( D" y/ o' }$ \" K: w4 H
' a1 B3 @5 w$ I1 K3 E8 I4 A+ N$ [6 @6 q5 F" S' T+ G

+ {/ L3 Q# s. O1 G, Uvar Cmd = request("Cmd");
' x6 Q5 Y8 B4 c  V4 M+ M1 e4 dvar FP_ACTION = request("IF_ACTION");
0 @9 \! k( [- a# A9 s: s3 J* s! s+ m这两行代码应该是重点,目前找不到request函数的定义,猜测应该是路由端执行设置命令的函数。
0 p3 A+ @" l; T$ ]. r: _( `9 s$ b. }" ?  Q9 E% r2 N5 ]
CmdAck = show_shellcmd(Cmd);
9 v8 o& |! S' u1 M" l9 d' [: \/ |- n  Y$ b! R7 k7 t& y0 I
找不到show_shellcmd函数的定义,猜测是将执行完成的命令显示在网页的文本框中。
* E6 U. \" C/ S1 S5 a- x: a# a# I' t2 ~8 E) c$ O* o

. D; [, X0 _4 |9 rgetDisplayInstError(FP_ERRORSTR);
  L9 L* X6 a( a$ A! n
/ Q6 ?0 `6 H7 w9 t; L
% G, \! @5 L' s! g% N. p& `找不到此函数中的某些函数定义,猜测是处理执行命令出错信息显示在网页的文本框中。
4 B& h2 }" d; ~* t- c9 R  {) u4 g- F# ?: w) Z
undoDBSave();7 `4 d& b) L. g- X  m
找不到此函数定义。
; K/ T/ ~6 U' L- P/ z+ i! L3 z
! v9 L* q4 O  ]( m( ~( rcreate_form_end();
3 y7 M2 O4 x0 l0 }3 K: V- S; r, n创建表单结尾8 u  O4 U' G/ @) k# g# R3 W3 [
生成的HTML代码:
5 F& ~: E. S$ B: a( @2 |</FORM>( N" ^* U4 K* A* R  a" i

1 @. r' n- E/ A# X3 x以上是web shell页面代码的分析结果,现在由于web_shell_cmd.gch被移除,故无法提交命令给该页面,但是如果其他设置页面也有<% ... %>部分脚本代码的话,应该可以通过这些页面强行提交命令给路由。望已经开启了FTP/telnet服务的朋友能提供一份F420所有网页文件的列表,或者网页文件的打包更好。! K' ?8 D: o$ _3 N: N& n/ m
) a9 l# D% Y; E* ?; g
0 ~2 y/ h% L) f' s& d: D

1 l& v5 g; \5 {9 \5 N( l, i7 K; N1 a, L/ F  K
发表于 2013-12-20 16:04:12 | 显示全部楼层
楼主看来很专业噶。/ n/ }, o- M4 Z7 |
能不能先用config.bin获取密码后,登录路由器看?
 楼主| 发表于 2013-12-23 10:32:18 | 显示全部楼层
管理密码已获取,但只能通过web操作路由,telnet/ftp等都被封6 f8 F" \4 f* Q; g5 x" }7 a- p
已找到一份F420文件 http://www.chinadsl.net/forum.php?mod=viewthread&tid=86776* u1 F: P+ G7 a
但里面没有web_shell_cmd.gch, 正在研究~
发表于 2015-1-31 19:14:59 | 显示全部楼层
好专业的撸主。 膜拜
发表于 2015-7-13 13:09:14 | 显示全部楼层
我就是来看看到底能不能用的。
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

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

粤公网安备 44152102000001号

GMT+8, 2017-6-29 09:53 , Processed in 1.099610 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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