|
本帖最后由 ericluu 于 2012-8-23 16:39 编辑 . u7 W1 \, O) q. t7 `2 ^# S
' o: i* q& T' k. P+ p( V! M8 Y' A6 | o
理论上说这个命令可以让我们完全访问并编辑光猫的配置文件,不管是明文还是加密过,昨天晚上我一直在纠结在telnet里怎样才能修改加密过的配置文件从而启动FTP服务,用sendcmd一下就搞定,重启后FTP就OK了,真心方便啊。
: X8 }$ x# k6 X; c" T4 H& k; s7 R4 U, g: u+ |
不确定是否有必要,我还是简单提一下常用的语法:* i# \. n$ I% j/ ]
0 X( N/ r3 Z, T: v3 k
运行方式有两种:
) ~/ G7 o+ o# g, U( b! M9 U3 c" X2 w+ Z! s/ d
1、telnet进去后直接运行,这是shell的命令。9 V- t3 \5 `* F9 u) j. w/ \' V1 Q" z
2、浏览器访问http://192.168.1.1/web_shell_cmd.gch
7 s+ l* x+ W$ K# ~! u: N. ~, V9 ]0 J R- p" Y
个人喜欢第二种,相当方便,编辑的结果会自动显示在下面的信息框内。
% S1 b5 p/ ~4 H$ F+ B, \& J' `+ O+ l+ a5 M3 Q$ y6 L
基本语法:$ U# w5 E0 v2 g1 H* d6 R! ^$ k1 H
6 b0 a$ q9 u7 ]" ^1、读取全部表名:sendcmd 1 DB all ,输出结果如下(只复制了前10行):1 a1 r3 r* i2 x* ]3 b
0 DBBase
2 N5 @. U- ^6 l9 `4 x% Y9 w1 WAND
/ v* `6 y; b- U/ ~" O% S( K2 WANCD, s9 [# Y% `+ s, K8 K! H- Q. B
3 WANC0 U* h% K5 p6 h( z: }4 F
4 WANCServList
; |; y8 d K# |/ V5 WANCIP a6 | M/ f# ]+ z
6 WANCIPOpts! @" ]. C( p7 V% e
7 WANCPPP
2 c$ z0 F# Y) B* `( Y8 IPv6IP) j1 j. F3 I- _( {
9 LAND
. L0 |: y) a# k' R10 BrGrp) ?" I; T% {0 W
; Y2 h% [) j/ q' H* [; i: ^+ x2 d6 j% S) |" ?) ]$ @" n
2、读取指定表详细信息: sendcmd 1 DB p 表名 , 具体表名可以运行上面的命令查看,比方说我想开启的FTP服务,对应的表名是FTPServerCfg。运行结果如下:0 }/ Y# @5 q$ B0 t
# X1 J7 g3 }( Z- R, A<Tbl name="FTPServerCfg" RowCount="1"># j8 \0 l+ b7 ]1 t, g# P9 n }
<Row No="0">* Q! O* k! ^3 a$ f/ y
<DM name="FtpEnable" val="1"/>8 m% |7 ?9 F9 B
<DM name="ServerPort" val="21"/>
2 w$ ^+ ^9 x/ |+ V$ R* c& u/ }! { <DM name="WanIfEnable" val="0"/>* q) l% Z: G5 y2 \& B. c& j
<DM name="FtpAnon" val="0"/>
$ [3 [& T) F3 z1 [! t6 i <DM name="WanID0" val=""/>7 a: w$ o0 J2 M4 i! y
<DM name="WanID1" val=""/>
& y) ^6 L2 R' g% V7 L <DM name="WanID2" val=""/>6 X U% q3 z( j9 }& J0 O
<DM name="WanID3" val=""/>
1 B7 }1 L. u' h: Q" u' Y+ a: X% q <DM name="WanID4" val=""/>
1 t" r N( k; }: ~4 Y$ W <DM name="WanID5" val=""/>
3 f* X% j8 r* d <DM name="WanID6" val=""/>6 \; h+ j6 `, g' P- f! V; p
<DM name="WanID7" val=""/>
: p! B2 M! |7 I; | <DM name="MaxClient" val="5"/>
" S4 O7 H9 i9 L# n( r2 T <DM name="MaxPerIp" val="5"/>2 W! w) ?/ u( `) V; x
<DM name="MaxRate" val="250000"/>) u, _ ~/ N% b) Y) N9 O- h
</Row>
4 n9 Y7 D6 r5 Z& N/ O6 x</Tbl>5 v6 L+ ?+ Z7 N+ E
( o" K# Y8 I2 N7 k% Y( {/ f3、查看当前系统运行的服务状态:sendcmd -pc show , 运行结果如下:
6 s: v# Y5 a, H* o
2 E7 v" C6 b) E: T. X. VName APPID pid inst StartedbyName State EchoMsg
9 M6 r4 y8 A! Q6 X2 y& V/bin/dhcpc 0 1099 0 wancip_mgr 1 1 , m2 t9 Q) V3 r# @+ ?
pppd 0 1070 0 wancppp_mgr 1 1 9 @! i0 y" F- \. H
radvd 0 1034 0 ra_mgr 1 1
6 G8 e8 u, O' t+ [( ydhcp6s 33 837 0 cspd_misc 1 1
* N3 a/ H; ?2 k( J( {$ Oupnpd 66 831 0 cspd_misc 1 1
! T! K6 Y# g5 y/ yvoip 2 830 0 cspd_misc 1 1 # X) n9 A* k% R/ X$ u6 S
telnetd 61 828 0 cspd_misc 1 1 2 B( J) K# E- x c9 p
httpd 3 826 0 cspd_misc 1 1
; g) v6 E v5 Kgpon_omci 132 823 0 omci_mgr 1 1
; p B, H2 a& I. ?: f( K+ a' yvsftpd 0 822 0 fm_mgr 1 1
5 u, k& j5 X% a Jdnsmasq 0 721 0 dns_mgr 1 1 4 n+ H' A% Q3 O+ ]0 j+ y
cspd 1 402 0 pc 1 1 , y' K% k) r) f6 P, `
可以看到我想要的几个服务如telnet,web以及FTP的State都是1,也就是正在运行的状态。
0 F0 y; z5 S' u f! X
- \+ F, v6 |- |5 l1 S4 I q4、修改某个表的某个字段的值:sendcmd 1 DB set 表名 行数 字段名 字段值, 这个命令稍微复杂一点,但也非常容易理解,比方说我想关闭FTP服务,也就是上面示例中的FtpEnable 设置为0就可以了,我们可以看到FTPServerCfg 这个表只有一行,因此RowCount="1" ,那这个命令中的行数这个数字从哪里来呢?FtpEnable 字段所在的行数就是<Row No="0"> 这个里面No的值,这里是0,因此最后我们需要运行的命令是: sendcmd 1 DB set FTPServerCfg 0 FtpEnable 0 ,呵呵,不知道解释清楚没有。* M" ]1 |4 N0 S! ~3 h
0 H! ~" y0 E4 \- W" Q
5、保存对配置文件的修改:我看了一下sendcmd 1 DB 的命令集里有save的方法,因此我想对用set方法进行过修改的地方最好还是保存一下,命令是: sendcmd 1 DB save ,系统会反馈successed, but no output,也就是说运行成功但是没有返回值,这样其他就意味着已经保存成功了。. J4 x$ H& A1 J: S# @2 o
4 G f0 {/ R( j2 H% _
我想总体对我们来说最有用的估计就是上面几条命令了,希望对各位有用。欢迎讨论。
' t& O D$ W. {$ B+ j5 P+ L
/ h* x0 c2 v8 g9 r+ p特别说明,本文是在easehu 大大的帖子 https://www.chinadsl.net/thread-76120-1-1.html 的灵感基础上自己进行的一些深入摸索得到的,感谢easehu的宝贵经验分享。
% ~9 g( |4 K( X% T) X& Z
, B# L. B! `+ j& W# L# U+ M+ v0 `$ t3 [: k
! g" f6 a" a. _% c% L$ w
2 Y' p' h3 M Y) g$ p |
评分
-
查看全部评分
|