设为首页收藏本站

宽带技术网

 找回密码
 注 册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3288|回复: 4

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

[复制链接]
F420, V3.2x 固件,telnet, ftp等权限全部被关,web_shell_cmd.gch被移除,不拆机开telnet服务,以下是一些研究及设想:9 n8 n( j! Y# ~6 }

# e8 \' V( ]% p* b$ G
/ q& T7 Z: u, v! G4 U+ u6 r' x$ j/ U9 l6 m1 {* L
* C8 a6 L& s$ Q- C" b. u
研究了网上能找到的web_shell_cmd.gch 文件,发现发送命令应该是这个函数完成:
: i- n5 i9 `: \: U. W& d" F" N; w2 x' C. i
2 u, \" B# s( u) o. f) \- u' o7 _: O
function pageSubmit()
! Y/ Q1 n0 J6 ^* q" Q, u/ h& h' E6 J{8 ]9 a/ H# ^) }
jslDisable("Btn_Submit"); //将提交按钮状态设置为无效
6 V5 w0 T( {" W3 z2 k$ H8 ]3 _pageSetValue(); //将“Frm_Cmd”输入框中输入的命令传给对象“Cmd”,这是一个隐藏的输入框,
% u% _  D+ u' G( b. [. t! zsetValue("IF_ACTION","apply"); //将值“apply”传递给“IF_ACTION”对象,这也是一个隐藏的输入框
+ Q( l% z- N' dgetObj("running").style.display = ""; //设置运行状态等,无关紧要
! Z0 D/ K% Q/ g/ f7 `0 ~getObj("running_title").innerHTML = "it is running, please wait..."; //设置运行状态等,无关紧要
- P' I8 m0 G0 o7 n, a% S5 kgetObj("fSubmit").submit(); //提交表单fSubmit到服务器,这是个隐藏的表单
$ a- p/ q9 m- A6 }3 R+ l8 j5 `}: e3 _" o* L3 {' A/ L; ]
4 x2 C: C* x' D
下面是web_shell_cmd.gch中的类似ASP等脚本的动态代码,当浏览器请求web_shell_cmd.gch页面时,先运行这段代码,生成对应的html代码再传送给浏览器显示,浏览器提交命令后,在这个例子中,任然是提交给web_shell_cmd.gch页面处理,实际上也就是下面这段代码进行处理。1 w" S5 @2 ^- R: S

. k! ]4 t/ e9 O5 W+ u5 }
* g/ r" x( H& \) I% t7 A2 h下面来看看这段代码做了什么:
; L. r" A. d4 K5 n; i3 x6 E7 [1 d1 J$ J0 f
<%
6 [1 Q6 g4 v. x: HIMPORT FILE "common_gch.gch";% _. ^, x$ h- T" O
var FP_ERRORSTR     = "SUCC";; c. [( t, J9 r; s8 t5 J
var FP_PARANUM      = 2;) _3 ?$ I- J* U( U( ~5 A
var PARA[2] = { "Cmd", "CmdAck" };1 R7 B' g4 I: Y" w  H) k5 y0 {2 v1 Y
( @1 `. }4 j* e6 a! W' f  S) \+ K; m- t
create_form_start("fSubmit", "'/web_shell_cmd.gch'");
1 M4 W+ x* s0 f- vcreateBasicHidden();
4 ^# p" a/ }) u6 _create_hidden_newpara(PARA, FP_PARANUM);- y) a6 p' _( I/ x
var CmdAck="";
0 p2 v- [8 U9 @5 G, Ovar Cmd = request("Cmd");8 Z- c' }4 Q# f0 H: S
var FP_ACTION = request("IF_ACTION");  {) n0 n2 ^9 q
if(FP_ACTION == "apply"){  s$ |3 r  |- g2 f! \5 E. W
CmdAck = show_shellcmd(Cmd);
8 U' n* B, s6 e/ n: G}) k+ Y/ j5 F  \, y5 t7 L1 ~- \5 b
getDisplayInstError(FP_ERRORSTR);2 _  I+ q. D/ L( I* M0 a. N
undoDBSave();
& k5 }4 E: p, F) a2 {& b( G& L2 O+ |
create_form_end();7 y& B- p! ~$ X' N
%>
* h; y5 j+ n( Q! Q2 d+ J1 N* O

- `; O8 t  M% _0 |+ ]' lcreate_form_start("fSubmit", "'/web_shell_cmd.gch'");, |# ]. X1 y  b1 r
创建表单fSubmit,输入的内容将提交给页面“/web_shell_cmd.gch”- O) h1 ^  B/ Z8 ~) U
生成的HTML代码:$ x# e7 v9 j! e/ J8 G! v
<FORM NAME=fSubmit ID=fSubmit METHOD='POST' action='/web_shell_cmd.gch'>
* x7 D6 o+ x+ O; p. p
' x- R7 M+ X4 D1 y' ]+ G
& b: q7 v. e( r6 G4 YcreateBasicHidden();/ o0 T/ V& v8 o+ I+ Z
创建如下隐藏的输入框对象并设置初始值:$ ]/ C- Y' J: n- {8 t/ a9 U
IF_ACTION, ""/ m! R9 j  S2 O2 O- V/ C3 j
IF_ERRORSTR, "SUCC". B) r! q5 \; B$ A7 B) G, _0 E
IF_ERRORPARAM, "SUCC", {) w" y3 |+ ~
IF_ERRORTYPE, -13 G( Y; E8 B' Z$ r9 a8 a, G0 a
生成的HTML代码:! F- P6 l) {! U

7 l/ z9 @+ l  j5 R: u" F% y
- w3 B, \' R1 _, G7 @9 R+ y<INPUT type='hidden' name=IF_ACTION     ID=IF_ACTION value=''>" Z. L, N1 R* u0 q
<script language=javascript>Transfer_meaning('IF_ACTION','');</script>6 p  [$ G7 x+ y, g
<INPUT type='hidden' name=IF_ERRORSTR     ID=IF_ERRORSTR value=''>: S; x  \0 u* R0 K* E- Y6 V: d
<script language=javascript>Transfer_meaning('IF_ERRORSTR','SUCC');</script>
( S. D7 _+ B4 H0 ~<INPUT type='hidden' name=IF_ERRORPARAM     ID=IF_ERRORPARAM value=''>
9 K6 }' n- ?  @3 y) B<script language=javascript>Transfer_meaning('IF_ERRORPARAM','SUCC');</script>
# Q! `. j/ N4 q, V- ^( c; h<INPUT type='hidden' name=IF_ERRORTYPE     ID=IF_ERRORTYPE value=''>
/ b8 Y& w; Y. f' n5 x' C<script language=javascript>Transfer_meaning('IF_ERRORTYPE','-1');</script>- V: Q5 s. r: m/ U: k# O4 j$ `" m

# V; Y' o; s+ @/ n/ L! |
0 ~8 ~' k) Q1 ~) y& G$ V  y
7 ]3 @7 W9 q6 a7 A" I2 T4 {, Vcreate_hidden_newpara(PARA, FP_PARANUM);! ?. v/ O7 C+ ]4 Y& ^  J: x
生成 ID 分别为 "Cmd", "CmdAck"的隐藏输入框并设置初始值为空
" [2 O  ~/ m5 F+ e8 h1 N; x
% o' p4 C% n- \+ ^  [生成的HTML代码:
% n( d) g8 \6 g1 Y' C
  b5 B) R6 }8 _0 ^
2 Q6 i) k$ `$ ~4 r' W, _  h( \6 c  n! y( z- q
/ M& F& l* H, _6 O- L
<INPUT type='hidden' name=Cmd   ID=Cmd value=''>
$ U2 X; |4 l4 {' g# ^  |' r<script language=javascript>Transfer_meaning('Cmd','');</script>* t2 r! B" p0 q3 w
<INPUT type='hidden' name=CmdAck   ID=CmdAck value=''>& l& r5 z6 R% G& ~2 ~/ P
<script language=javascript>Transfer_meaning('CmdAck','');</script>
5 o& O4 r' Q1 |" E$ X) R) e+ I2 c3 U- ]! b) Q" q( B1 L

1 F+ A$ _) `4 m% @5 V5 F; Q5 A/ ]$ F0 A4 L
" _) _3 ]9 M$ N9 o7 U9 d# m, O2 O7 {; O6 i; y7 F+ v0 ^3 O/ {
var Cmd = request("Cmd");9 Z2 K/ a  a4 v2 a" x" @8 O
var FP_ACTION = request("IF_ACTION");
* n1 K, q0 s& r2 B! L! e这两行代码应该是重点,目前找不到request函数的定义,猜测应该是路由端执行设置命令的函数。: c+ j& G. Z* z

9 r( D4 A9 h$ X" R$ _CmdAck = show_shellcmd(Cmd);9 @) I& L9 z2 E2 }! R  e, B

( L. L" v6 h: e+ n+ h4 W找不到show_shellcmd函数的定义,猜测是将执行完成的命令显示在网页的文本框中。
9 D7 c% ~, S( ~. p% m$ z- L% B/ ]9 b& w

7 K$ N7 H. a3 D# |getDisplayInstError(FP_ERRORSTR);
) J2 x3 W  ~- z$ `7 f. N- s  u: `6 W% v5 Z! ?: Y  Y! t) X

' v+ z; R, I4 ~- y" d& m" J' \找不到此函数中的某些函数定义,猜测是处理执行命令出错信息显示在网页的文本框中。
1 r2 j% g$ e- ]" T) Q/ |
" t. F* A7 v2 o7 E) v9 k. tundoDBSave();
) I% w* h0 t$ `2 N8 \找不到此函数定义。8 ?8 f& v8 g. {% P4 i2 B4 W
# p. `4 ^2 G2 c% F/ \! \
create_form_end();
+ i& @/ c* o8 O7 c创建表单结尾5 X5 l2 y/ N8 a; c5 L% ~1 O
生成的HTML代码:' B6 Z. u$ f: h
</FORM>6 {  B- T& j  F; M" k9 w4 V

" E2 ~# E+ g: ?: t+ L( z- I  x以上是web shell页面代码的分析结果,现在由于web_shell_cmd.gch被移除,故无法提交命令给该页面,但是如果其他设置页面也有<% ... %>部分脚本代码的话,应该可以通过这些页面强行提交命令给路由。望已经开启了FTP/telnet服务的朋友能提供一份F420所有网页文件的列表,或者网页文件的打包更好。
1 u( n3 {$ [" |( Y) ]3 S
. I9 N; L7 G. w% |3 z4 k- i2 Y+ \+ O1 V2 m

) ]5 S$ p$ c1 h* A* s7 Y/ B2 \) r7 s" X3 V; h* Q# a& w9 R2 j
发表于 2013-12-20 16:04:12 | 显示全部楼层
楼主看来很专业噶。: c: ]4 P/ _! V6 h  h
能不能先用config.bin获取密码后,登录路由器看?
 楼主| 发表于 2013-12-23 10:32:18 | 显示全部楼层
管理密码已获取,但只能通过web操作路由,telnet/ftp等都被封
/ y6 D* `, s! S; |/ ^0 k3 J已找到一份F420文件 http://www.chinadsl.net/forum.php?mod=viewthread&tid=86776
* Y9 _) I& z" X+ |9 \但里面没有web_shell_cmd.gch, 正在研究~
发表于 2015-1-31 19:14:59 | 显示全部楼层
好专业的撸主。 膜拜
发表于 2015-7-13 13:09:14 | 显示全部楼层
我就是来看看到底能不能用的。
您需要登录后才可以回帖 登录 | 注 册

本版积分规则

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

粤公网安备 44152102000001号

GMT+8, 2017-7-27 12:37 , Processed in 1.096679 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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