设为首页收藏本站

宽带技术网

 找回密码
 注 册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3190|回复: 4

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

[复制链接]
F420, V3.2x 固件,telnet, ftp等权限全部被关,web_shell_cmd.gch被移除,不拆机开telnet服务,以下是一些研究及设想:0 c3 ]$ N; z" b) P1 T. q

' S" N$ d1 z3 ^  P6 h2 T$ K) h
" L- d) N- X5 y$ s7 [9 z9 C7 r" }" d/ W4 _! B& ?0 d
& u0 @; G) B# u' |7 M) ^
研究了网上能找到的web_shell_cmd.gch 文件,发现发送命令应该是这个函数完成:
3 r( R7 d9 }3 _
; }; @" g8 i2 s- d/ s  u0 T8 R, W, |( N) u; T2 _2 X* ]( w
function pageSubmit()% Q  L# X  C8 u/ m! ^
{
3 N: f- m8 v# X1 L4 CjslDisable("Btn_Submit"); //将提交按钮状态设置为无效4 Q) y: \$ c" J7 `9 j, N
pageSetValue(); //将“Frm_Cmd”输入框中输入的命令传给对象“Cmd”,这是一个隐藏的输入框,2 Z8 U, d/ a; f/ J
setValue("IF_ACTION","apply"); //将值“apply”传递给“IF_ACTION”对象,这也是一个隐藏的输入框
, l4 L" u+ z5 |( x8 YgetObj("running").style.display = ""; //设置运行状态等,无关紧要. n& t/ {9 {: ~* y3 a* a4 A
getObj("running_title").innerHTML = "it is running, please wait..."; //设置运行状态等,无关紧要' E- t% m7 [! g2 g; _# i0 ?
getObj("fSubmit").submit(); //提交表单fSubmit到服务器,这是个隐藏的表单
3 P3 Q' l, [9 P; |* q2 A3 `}2 y: N9 @  C( h' }! G
2 n( V: F7 }* m1 C0 U
下面是web_shell_cmd.gch中的类似ASP等脚本的动态代码,当浏览器请求web_shell_cmd.gch页面时,先运行这段代码,生成对应的html代码再传送给浏览器显示,浏览器提交命令后,在这个例子中,任然是提交给web_shell_cmd.gch页面处理,实际上也就是下面这段代码进行处理。( M) K7 [( V/ w0 z
! |! ~  g- u# e% Y

# a, V/ a; C3 e3 q* n下面来看看这段代码做了什么:" u7 l; y- R; H3 _- j& B

4 u  g  n* E- A<%
5 P; R( c8 I, J, c+ VIMPORT FILE "common_gch.gch";7 e7 W1 H0 D2 }# l
var FP_ERRORSTR     = "SUCC";
5 T' ~* D. }8 t" Z& Fvar FP_PARANUM      = 2;% H! G, q4 A; g- e! e
var PARA[2] = { "Cmd", "CmdAck" };4 ~3 m/ n; Y$ R

7 r5 k5 Q; a8 q7 t  Jcreate_form_start("fSubmit", "'/web_shell_cmd.gch'");, t1 N2 B; d3 d
createBasicHidden();/ Z; u2 q: J' S" q5 F0 D
create_hidden_newpara(PARA, FP_PARANUM);, Z6 k1 b1 q2 Q. j$ V. o) m
var CmdAck="";
5 V# f/ ]$ O7 x0 c# b) uvar Cmd = request("Cmd");
3 z7 c8 ~( l) L  H* V% Mvar FP_ACTION = request("IF_ACTION");' @# M' V1 n& r. ]; f5 f9 g
if(FP_ACTION == "apply"){4 C) ~! }' y" Q0 ?. W
CmdAck = show_shellcmd(Cmd);3 f  u0 }4 p) l% C1 P# M, S
}
0 z- R  Q9 w# S; E: j: \. V* y3 ngetDisplayInstError(FP_ERRORSTR);5 L, {1 }9 O9 ]9 C- N2 @- T
undoDBSave();
. y' ~1 d6 C+ y8 [; D; F2 _; d; q0 s# G
create_form_end();
0 I) _! H. H) F3 D* B%>
8 W1 ]- V+ z$ q5 T% i' Z- e9 R! N% M4 q6 ~( D
4 n5 |7 J$ E8 ~: m* e, E9 }
create_form_start("fSubmit", "'/web_shell_cmd.gch'");
( d: K9 a" N7 |8 R  i创建表单fSubmit,输入的内容将提交给页面“/web_shell_cmd.gch”! E! W: `  C1 I9 V
生成的HTML代码:* G% p! j8 X0 S3 k0 G0 X
<FORM NAME=fSubmit ID=fSubmit METHOD='POST' action='/web_shell_cmd.gch'>+ {+ x$ B5 W* x6 O* L4 \+ o  @

3 E9 p4 g% U# u1 k# A% k  S
8 g% v5 J; ?3 ]) F/ _$ ^createBasicHidden();. r* c8 y  J0 p% \9 ^0 L5 ]# R
创建如下隐藏的输入框对象并设置初始值:
/ y( k$ ?" n6 X, R; z# ]* j- eIF_ACTION, ""
# ]9 y* Y, v3 U, c' i. dIF_ERRORSTR, "SUCC"
1 X: `9 d  [5 z6 H; yIF_ERRORPARAM, "SUCC"" ?, V( ?, a$ N- w" B
IF_ERRORTYPE, -1
9 c$ b, s5 M9 D; _$ l生成的HTML代码:
) Q4 G3 Y1 {8 [. y9 b
* N) W, q8 N3 x9 f# ^- c. t) J* Q8 I: V- u
<INPUT type='hidden' name=IF_ACTION     ID=IF_ACTION value=''>' D$ q' A# n+ U6 {; ?
<script language=javascript>Transfer_meaning('IF_ACTION','');</script>
0 {% u7 s+ D1 y/ I( t<INPUT type='hidden' name=IF_ERRORSTR     ID=IF_ERRORSTR value=''>
9 e7 a3 t+ r5 Z9 {# D<script language=javascript>Transfer_meaning('IF_ERRORSTR','SUCC');</script>' O- f/ U: W7 G
<INPUT type='hidden' name=IF_ERRORPARAM     ID=IF_ERRORPARAM value=''>7 I+ |5 \- K1 j  Y2 [
<script language=javascript>Transfer_meaning('IF_ERRORPARAM','SUCC');</script>; _2 O$ V0 e' o
<INPUT type='hidden' name=IF_ERRORTYPE     ID=IF_ERRORTYPE value=''>
0 V$ A% m. |: J3 D( A$ @<script language=javascript>Transfer_meaning('IF_ERRORTYPE','-1');</script>
& ^+ L4 I  {, x' f! Y/ T; J, s& L  \# I

0 K6 m5 G7 W5 J0 D
5 J$ w  L* n! S* f: s# f+ {create_hidden_newpara(PARA, FP_PARANUM);7 l6 n* X1 W' k  w! L6 F
生成 ID 分别为 "Cmd", "CmdAck"的隐藏输入框并设置初始值为空
) T' z! ?7 I# s: h3 f5 _$ k1 O4 c" ^5 u  ?9 h( e
生成的HTML代码:+ Y3 g8 ^0 e9 K' I
$ h' [  q' a6 h. u/ X
  u0 m9 x$ Z- P9 p2 F( n
/ ?0 i  M& \- i$ O1 K: P7 d8 S# l
$ n  n+ {6 r( C/ k; _
<INPUT type='hidden' name=Cmd   ID=Cmd value=''>: h* M( D9 R- Q" O
<script language=javascript>Transfer_meaning('Cmd','');</script>
! _4 a- r' [+ I: C<INPUT type='hidden' name=CmdAck   ID=CmdAck value=''>
8 G$ P5 f0 m3 m* f3 J. ]6 S<script language=javascript>Transfer_meaning('CmdAck','');</script>, j3 s9 G6 ^/ S

& a* s' N+ i7 l, y! H# u3 w  ]( n
: G0 R! `8 z  K9 o& l. D
# |; }% C$ {& y! X( i
! ~3 D" x, n6 o3 R" ^" L* ~var Cmd = request("Cmd");8 b) G/ ^/ L) i9 e) }8 O% k! z+ |" r
var FP_ACTION = request("IF_ACTION");4 C3 ^" t0 F# Q9 e# y4 B, l
这两行代码应该是重点,目前找不到request函数的定义,猜测应该是路由端执行设置命令的函数。
& E0 R: \; l" [- \+ E1 z- T" n7 {7 u5 R- V
CmdAck = show_shellcmd(Cmd);: s- k5 K+ ]+ C  Z1 d  Q
$ c6 S; D. V7 p# P. G1 S. ?
找不到show_shellcmd函数的定义,猜测是将执行完成的命令显示在网页的文本框中。
# \- H' U" ]) L% k1 G& `# m
5 Q: ~# C) Y9 s: |% Z# H6 G
! ^4 o, f6 I1 H- A! ogetDisplayInstError(FP_ERRORSTR);
& b# I3 `' b0 a1 b# w
3 K7 N" E3 p2 T6 D$ I) p: D' ]- M* p# u
找不到此函数中的某些函数定义,猜测是处理执行命令出错信息显示在网页的文本框中。
6 i6 `  o6 v. ~9 I1 E3 u* |1 i5 d+ S. C; }
undoDBSave();% T8 ^0 v0 h- Y
找不到此函数定义。/ t& y  n7 _" v  j: q# ]2 z8 F2 f

: d" t3 K, `( \, U# bcreate_form_end();
! g3 v* l  K: c' J7 \  @) f, `创建表单结尾' I# x  R+ ^/ R+ d" t  @
生成的HTML代码:; g$ `8 B' x& t: ^2 t
</FORM>0 ^0 D- q; V1 \

6 D/ r* E# d* r以上是web shell页面代码的分析结果,现在由于web_shell_cmd.gch被移除,故无法提交命令给该页面,但是如果其他设置页面也有<% ... %>部分脚本代码的话,应该可以通过这些页面强行提交命令给路由。望已经开启了FTP/telnet服务的朋友能提供一份F420所有网页文件的列表,或者网页文件的打包更好。
8 p( Q6 E4 x/ w" y: c5 b: n, J6 M8 m8 W
, a5 U. w8 i& l$ i4 d' B9 x
4 X5 Z8 [3 o1 _" F, ~) p+ A. q+ m

6 X+ d, X) Y7 {
发表于 2013-12-20 16:04:12 | 显示全部楼层
楼主看来很专业噶。
' f  r0 }+ x% c6 z能不能先用config.bin获取密码后,登录路由器看?
 楼主| 发表于 2013-12-23 10:32:18 | 显示全部楼层
管理密码已获取,但只能通过web操作路由,telnet/ftp等都被封3 j4 d5 y4 @; L" k, y4 I
已找到一份F420文件 http://www.chinadsl.net/forum.php?mod=viewthread&tid=86776! c; E( ~4 U  q) Y
但里面没有web_shell_cmd.gch, 正在研究~
发表于 2015-1-31 19:14:59 | 显示全部楼层
好专业的撸主。 膜拜
发表于 2015-7-13 13:09:14 | 显示全部楼层
我就是来看看到底能不能用的。
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

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

粤公网安备 44152102000001号

GMT+8, 2017-5-24 04:40 , Processed in 0.491907 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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