|
本帖最后由 ericluu 于 2012-8-23 16:39 编辑 " b% w( U% _- n
. g# H3 O E ^1 z$ b& E
理论上说这个命令可以让我们完全访问并编辑光猫的配置文件,不管是明文还是加密过,昨天晚上我一直在纠结在telnet里怎样才能修改加密过的配置文件从而启动FTP服务,用sendcmd一下就搞定,重启后FTP就OK了,真心方便啊。
$ V4 {; |* W# O, F" o
# k. S h8 c2 f* P2 s# a4 y不确定是否有必要,我还是简单提一下常用的语法:# k k: H% G! @- N
7 }) Z7 K; `0 b" N( A
运行方式有两种:
6 X, g- g1 t: M# Q/ t( f
* q! P) [' h1 q" ?1、telnet进去后直接运行,这是shell的命令。9 Q8 Z6 R' W7 I
2、浏览器访问http://192.168.1.1/web_shell_cmd.gch( @: D6 H! T; h
/ ~$ K2 d6 L) v. h9 u" V& W# @! a个人喜欢第二种,相当方便,编辑的结果会自动显示在下面的信息框内。
]: D$ e5 ^) l% ^. G
5 F: Q# E; V6 {基本语法:# @. a& l; C: a. S3 E# l
W! ]% q4 X: a$ A, t8 y0 J1、读取全部表名:sendcmd 1 DB all ,输出结果如下(只复制了前10行):
8 x/ ^0 `+ k8 `3 k) M- E# l0 DBBase1 L3 V2 a' C9 |
1 WAND
' {- \/ w( Z5 ]1 ]2 WANCD' d% p( n9 w9 s4 ~ u
3 WANC
$ G) W: W8 {% ?4 WANCServList' @1 N$ d4 h, ?2 A9 s5 i% J
5 WANCIP6 X+ e$ G/ ~+ d$ O: ~4 c0 z
6 WANCIPOpts- J1 T6 Q0 g# o3 r2 K
7 WANCPPP
. i; F. q R& J( z9 Z; o8 IPv6IP6 s+ X7 Y9 R- F! _7 R
9 LAND
7 _3 Y4 @ M& G- n4 `9 _10 BrGrp
2 c& ]7 f/ C& a4 V/ e5 ^( q+ U, Y$ E" O2 _+ \& ?
+ J0 ?% `8 b4 i. u# y& X' y
2、读取指定表详细信息: sendcmd 1 DB p 表名 , 具体表名可以运行上面的命令查看,比方说我想开启的FTP服务,对应的表名是FTPServerCfg。运行结果如下:
; W5 R( i. R3 h+ I. d" _& d( L2 @: m( V
<Tbl name="FTPServerCfg" RowCount="1">
' y) g' C, K, ^3 @$ `4 R <Row No="0">
$ x4 O) P7 U. W4 V7 D <DM name="FtpEnable" val="1"/>/ l4 D' Q# X$ F6 i4 h3 P. x
<DM name="ServerPort" val="21"/>
. T7 Q# p- [4 ]- D3 N& z <DM name="WanIfEnable" val="0"/>
1 Y! I# J- f8 V3 a# H1 n" T- Q <DM name="FtpAnon" val="0"/>
* @# g" V9 i: _3 m5 V r <DM name="WanID0" val=""/>
! _; I, ~; p8 Q5 m <DM name="WanID1" val=""/>
" f/ J. R/ g; f) R* e1 c/ g <DM name="WanID2" val=""/>
2 C" T7 ?2 e; i <DM name="WanID3" val=""/>
# K& K1 {+ u) v" P" Q <DM name="WanID4" val=""/>+ Z% F% p2 |8 D E7 \5 c
<DM name="WanID5" val=""/>) N8 W2 B& k d
<DM name="WanID6" val=""/>
! n- W V' G9 C# L$ q0 k <DM name="WanID7" val=""/>
( g, V6 s I+ W) M! p <DM name="MaxClient" val="5"/>
( f% z3 l. b7 [1 e+ t8 ~ <DM name="MaxPerIp" val="5"/>
3 v; k- ?, p. e* N <DM name="MaxRate" val="250000"/>
( S" }0 b) Z8 L3 H, Z1 ~ </Row>; k8 e \/ E' Q/ E4 P" Q/ K
</Tbl>
" H. f! ~. K) B$ J( A N7 |* K% X0 v: C& K
3、查看当前系统运行的服务状态:sendcmd -pc show , 运行结果如下:
; r- P1 {& _" E+ ~# b* E/ O' R: N1 Q3 k) @( i7 }; V5 z
Name APPID pid inst StartedbyName State EchoMsg & C- X0 H. u& k3 F
/bin/dhcpc 0 1099 0 wancip_mgr 1 1 1 }$ j- f, g4 l$ g% a( a& R
pppd 0 1070 0 wancppp_mgr 1 1
& j; v" [# ]# \6 [- \. [( dradvd 0 1034 0 ra_mgr 1 1
: X* y6 |& q% p4 y$ t! vdhcp6s 33 837 0 cspd_misc 1 1 ' A2 P& U7 B5 _ j9 }
upnpd 66 831 0 cspd_misc 1 1
0 O; K) x! B1 C% ?# Z! k% Kvoip 2 830 0 cspd_misc 1 1 2 b8 p3 R- f2 |7 W+ c0 E1 T: M7 ^
telnetd 61 828 0 cspd_misc 1 1 + g7 e& R0 `" e; `
httpd 3 826 0 cspd_misc 1 1
3 [6 i& w1 w; a9 H% j/ pgpon_omci 132 823 0 omci_mgr 1 1
( ^% F6 s$ k1 h, g8 P) dvsftpd 0 822 0 fm_mgr 1 1 : h; x* ?2 v: |
dnsmasq 0 721 0 dns_mgr 1 1
$ G8 d6 G7 D2 g( D; jcspd 1 402 0 pc 1 1 0 }4 Y7 g' v# T" k5 H$ w( d, I2 w8 V
可以看到我想要的几个服务如telnet,web以及FTP的State都是1,也就是正在运行的状态。. \; A7 T# r; W b0 z8 D
* y* q$ ?8 p, G" |
4、修改某个表的某个字段的值:sendcmd 1 DB set 表名 行数 字段名 字段值, 这个命令稍微复杂一点,但也非常容易理解,比方说我想关闭FTP服务,也就是上面示例中的FtpEnable 设置为0就可以了,我们可以看到FTPServerCfg 这个表只有一行,因此RowCount="1" ,那这个命令中的行数这个数字从哪里来呢?FtpEnable 字段所在的行数就是<Row No="0"> 这个里面No的值,这里是0,因此最后我们需要运行的命令是: sendcmd 1 DB set FTPServerCfg 0 FtpEnable 0 ,呵呵,不知道解释清楚没有。8 Y3 e* {6 Y' |( @# R
; y! h1 U A; a
5、保存对配置文件的修改:我看了一下sendcmd 1 DB 的命令集里有save的方法,因此我想对用set方法进行过修改的地方最好还是保存一下,命令是: sendcmd 1 DB save ,系统会反馈successed, but no output,也就是说运行成功但是没有返回值,这样其他就意味着已经保存成功了。3 f. u: ^4 |; w0 ?
$ Q" N2 P4 t! J, V* a/ x我想总体对我们来说最有用的估计就是上面几条命令了,希望对各位有用。欢迎讨论。- d0 `7 M f0 S; a3 y
) g" T0 N( ~: T2 c# ^
特别说明,本文是在easehu 大大的帖子 https://www.chinadsl.net/thread-76120-1-1.html 的灵感基础上自己进行的一些深入摸索得到的,感谢easehu的宝贵经验分享。( i! Z# j5 Z2 I5 s3 b! `
" @, D8 e6 K. x& h k
) W$ x- h+ }1 |+ E2 ? r9 w: t- H/ Z/ v- l5 T& P' i0 O
0 L1 P, F- S0 Y/ v9 ^' \- `0 k
|
评分
-
查看全部评分
|