|
本帖最后由 ericluu 于 2012-8-23 16:39 编辑 $ R1 _0 g& Q" Y: n U* ?! ^
C& Z: W$ u/ H+ ^2 ^9 p- U4 ?/ T
理论上说这个命令可以让我们完全访问并编辑光猫的配置文件,不管是明文还是加密过,昨天晚上我一直在纠结在telnet里怎样才能修改加密过的配置文件从而启动FTP服务,用sendcmd一下就搞定,重启后FTP就OK了,真心方便啊。
' G+ F, @! ?$ u: q ~
8 y8 r+ E R$ U q9 V不确定是否有必要,我还是简单提一下常用的语法:
& [& W4 k; H& ~5 p& s' U- |
8 f3 s) |. K4 b) B运行方式有两种:
# K( }; u# _: m/ W' ^- g) ^* R3 R: k2 r3 A8 r2 R8 z
1、telnet进去后直接运行,这是shell的命令。
+ |6 G1 `, r' d- A2、浏览器访问http://192.168.1.1/web_shell_cmd.gch& C' m: Q9 R' _! H- K9 i
" N4 `$ g: D7 u& J- K, _2 P+ K
个人喜欢第二种,相当方便,编辑的结果会自动显示在下面的信息框内。
: G; _: D5 c7 J! O' y, P/ ^, P( u, l
基本语法:% X4 p% h# J8 W. X5 G1 X
- T' @7 a8 I+ D2 g3 q& n1、读取全部表名:sendcmd 1 DB all ,输出结果如下(只复制了前10行):
, s" S3 [9 C5 I/ r4 F+ C0 DBBase& m6 v {2 |, _# m: c- y0 d2 @
1 WAND
/ Z6 C# L V% o" ?- k2 WANCD
0 a/ f: }5 G; o! ~$ @ F" F6 a }3 WANC
! w, B0 x0 ?8 _$ {6 l4 WANCServList
+ ?9 b0 ?# \6 }4 M5 Q% J5 WANCIP# ]7 O% n' z L4 k9 Q! m# y
6 WANCIPOpts+ p6 n4 ?/ J: K( J7 }. ~8 I! ^
7 WANCPPP! e g1 l/ r+ N @* t
8 IPv6IP# _* r& Y/ v0 N" J f7 X
9 LAND( ]! N, y3 g0 b& d, p) p
10 BrGrp7 _+ F, X) e) L( q5 k
; W* S# |% ~; ]) C9 b' p7 k' y/ b) h* T- i1 @: L
2、读取指定表详细信息: sendcmd 1 DB p 表名 , 具体表名可以运行上面的命令查看,比方说我想开启的FTP服务,对应的表名是FTPServerCfg。运行结果如下:
t7 J( L& |7 w3 @
. B* ?& P* F7 I$ n! L# v& B<Tbl name="FTPServerCfg" RowCount="1">
4 _2 ^0 h2 k+ y4 X <Row No="0">2 O- Z7 i$ u6 j5 ?3 h! z
<DM name="FtpEnable" val="1"/>5 {7 {- v4 |3 T5 z; U
<DM name="ServerPort" val="21"/># d5 K! u" a5 q& X/ I/ m
<DM name="WanIfEnable" val="0"/>
% W5 h4 }3 s* t <DM name="FtpAnon" val="0"/>
& z" ^! ^" w9 c' v <DM name="WanID0" val=""/>4 m3 a- J& k) f" u8 ~: M$ m: b8 T
<DM name="WanID1" val=""/>' X& Z4 N5 s y3 e: V5 V
<DM name="WanID2" val=""/>
* T& C- S! Y4 A9 o3 K7 Z <DM name="WanID3" val=""/>
$ [7 j9 L% D2 w5 P: F4 L" v' D, o <DM name="WanID4" val=""/>
# a( n4 {* A I" w S. ? O4 R2 I <DM name="WanID5" val=""/>! e, K% f: O' n' f7 G \% {" K( p/ Z
<DM name="WanID6" val=""/>: Z/ s0 A+ X% G, E0 K N% Y
<DM name="WanID7" val=""/>
: ?; w* E9 s9 X7 f4 J$ K <DM name="MaxClient" val="5"/>
0 E7 y' Q# {" S3 l4 L* i6 y7 S3 B) K& {0 p <DM name="MaxPerIp" val="5"/>1 n+ D ?8 V1 a# t7 [
<DM name="MaxRate" val="250000"/>3 b* p1 P- [& N. t5 W
</Row>
9 p* Q/ W2 E% r! U" f0 o</Tbl>
/ F% G7 T" K. U3 Y9 z. S& I
: R9 x) l2 z8 O% d! N3、查看当前系统运行的服务状态:sendcmd -pc show , 运行结果如下:
6 i% e9 k$ M1 s! w; Y+ P( U8 m# j, O5 D
Name APPID pid inst StartedbyName State EchoMsg
6 E9 o) K" M% t5 D8 S7 g- e/bin/dhcpc 0 1099 0 wancip_mgr 1 1
s) e L) t2 h# a& apppd 0 1070 0 wancppp_mgr 1 1 * O( B% A' f* a
radvd 0 1034 0 ra_mgr 1 1 ) _2 K9 {/ X' J1 F1 S. p9 [( q
dhcp6s 33 837 0 cspd_misc 1 1
3 Z: w- ]7 H; [' H, p4 S* eupnpd 66 831 0 cspd_misc 1 1 W9 W: ]6 ~& Z4 j
voip 2 830 0 cspd_misc 1 1
) a: C& H) p7 a5 ktelnetd 61 828 0 cspd_misc 1 1 4 P( M# r& D* n3 j6 n3 S4 j- I
httpd 3 826 0 cspd_misc 1 1 . o4 J! s4 a9 [5 T
gpon_omci 132 823 0 omci_mgr 1 1
; G; M3 x7 o C" ivsftpd 0 822 0 fm_mgr 1 1 1 U, g! W% p& i8 f6 n
dnsmasq 0 721 0 dns_mgr 1 1 - M' P: Q! ?1 E3 a" j+ [# ]
cspd 1 402 0 pc 1 1
5 O, r' y* A$ Y4 ~可以看到我想要的几个服务如telnet,web以及FTP的State都是1,也就是正在运行的状态。
( H# l1 c2 l; b+ ~0 E) L! p& H# P/ q0 ?- a
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 ,呵呵,不知道解释清楚没有。3 S/ y# M- \( M5 h9 U
: T* Y4 `6 k. Q; _3 A' M0 [5、保存对配置文件的修改:我看了一下sendcmd 1 DB 的命令集里有save的方法,因此我想对用set方法进行过修改的地方最好还是保存一下,命令是: sendcmd 1 DB save ,系统会反馈successed, but no output,也就是说运行成功但是没有返回值,这样其他就意味着已经保存成功了。
' H0 ]: k( ?8 l" U/ m7 i/ T; b* B: {0 [8 _
我想总体对我们来说最有用的估计就是上面几条命令了,希望对各位有用。欢迎讨论。) I4 s% s# J: z( S9 i' e
7 f0 m5 i& @: [$ n
特别说明,本文是在easehu 大大的帖子 https://www.chinadsl.net/thread-76120-1-1.html 的灵感基础上自己进行的一些深入摸索得到的,感谢easehu的宝贵经验分享。
. M+ W! [+ ]2 U/ O+ g
2 L; h9 j, E8 `0 t- _$ ~! p- Y3 k% v/ w8 A: r$ F/ V
% }/ i; s) h o; i8 f4 S5 ~: F( }1 w% n; z' b
|
评分
-
查看全部评分
|