|
本帖最后由 ericluu 于 2012-8-23 16:39 编辑 ' \. ~9 n- A q8 T
; j) y% V/ M4 A理论上说这个命令可以让我们完全访问并编辑光猫的配置文件,不管是明文还是加密过,昨天晚上我一直在纠结在telnet里怎样才能修改加密过的配置文件从而启动FTP服务,用sendcmd一下就搞定,重启后FTP就OK了,真心方便啊。3 D9 H2 g5 C+ M2 L$ t. Q: J
0 Z5 t1 J/ O* m. W, m* Z1 X( N
不确定是否有必要,我还是简单提一下常用的语法:
" k2 r8 p" H% a: l3 @( o- j+ U, {
: R3 @, C: x& n# e0 _# a运行方式有两种:% |6 H @1 T; x, O x
) q. S, d( E: o. p6 h8 s' Z
1、telnet进去后直接运行,这是shell的命令。& k% z1 k1 u! q4 g0 Y- o5 I
2、浏览器访问http://192.168.1.1/web_shell_cmd.gch5 ^+ o/ `# o- P3 ~, G; f' w8 s
; r w3 j& f, `6 ^& b4 x$ a# N8 D5 P个人喜欢第二种,相当方便,编辑的结果会自动显示在下面的信息框内。% ] a( p% ^' o* `- ?4 T4 r
; \, l; B7 v. W% A7 i
基本语法:" y) G( E( n5 ? X% l7 [
8 k% ^$ t/ Z# F4 n# b, l' ~9 |6 l1、读取全部表名:sendcmd 1 DB all ,输出结果如下(只复制了前10行):
9 ]. \- w- r. C0 DBBase! d9 n- w# [ Z: S; M
1 WAND0 { _4 L! d3 l7 F; `. s
2 WANCD
9 z& k1 I" M C3 WANC
, M7 |2 Z3 @: @: N4 P$ ?8 P. [4 WANCServList
* N; h; ~; h0 Q& m m& i0 Z5 WANCIP
^; n7 a* A- t7 E- w f" {, V6 WANCIPOpts
. G/ x6 U& @6 `$ ?7 WANCPPP# }: x- Q% i2 W4 }
8 IPv6IP7 h: s$ ?$ q% X$ n
9 LAND2 K' L; u! o q
10 BrGrp
! o2 u9 @! _% j4 o; ?# s2 s7 J: Z. Y# G1 u& x
^- q( ^: N8 r7 f3 x2、读取指定表详细信息: sendcmd 1 DB p 表名 , 具体表名可以运行上面的命令查看,比方说我想开启的FTP服务,对应的表名是FTPServerCfg。运行结果如下:. k Y2 N$ r; q' u
2 i& s1 g) B# C+ _<Tbl name="FTPServerCfg" RowCount="1">1 g# O: Q% c) X$ b/ W+ v" s
<Row No="0">& h, R, W9 O5 m
<DM name="FtpEnable" val="1"/>8 v" U8 }! a, e" ?, V
<DM name="ServerPort" val="21"/>; K1 Y* ^' O7 m6 O9 g1 I. Y
<DM name="WanIfEnable" val="0"/>. f, G- I8 r ?+ [
<DM name="FtpAnon" val="0"/>
* p$ ]1 B/ c# j6 p <DM name="WanID0" val=""/>- |2 n& W e9 ^ [9 j& ]
<DM name="WanID1" val=""/>
% P& b. M; H- r6 o' J2 y <DM name="WanID2" val=""/>
4 o. J# @3 y6 l7 {1 A8 h <DM name="WanID3" val=""/>2 @+ N# c n& m; g# D
<DM name="WanID4" val=""/>/ S8 x- l2 {( t4 y' E$ G
<DM name="WanID5" val=""/>
, m. d8 J, ], Y1 D <DM name="WanID6" val=""/>+ y: T1 O4 W9 }( v# D9 A
<DM name="WanID7" val=""/>$ T. h+ ~% M6 r6 C
<DM name="MaxClient" val="5"/>+ A0 ?% q# O& G7 }! L
<DM name="MaxPerIp" val="5"/>. m" C0 g8 ]$ [ m$ O
<DM name="MaxRate" val="250000"/>
3 r* ]8 j1 \) {$ c5 r/ @6 S </Row>
+ w2 T% q: T% [, y/ p! O</Tbl>
7 h8 N) }9 R: U! m
3 C' C9 I1 z8 h. q0 e& f; m* [3、查看当前系统运行的服务状态:sendcmd -pc show , 运行结果如下:9 m/ W' o6 b& \/ m n
7 |; x- |9 {2 ]4 Q* p% W% R4 w5 x
Name APPID pid inst StartedbyName State EchoMsg 3 _9 S+ e$ j% U( N8 m4 L' }5 q( u) z
/bin/dhcpc 0 1099 0 wancip_mgr 1 1 * p+ q* R1 N% R8 o" ?6 ? m
pppd 0 1070 0 wancppp_mgr 1 1
/ p& L5 ~2 j" \7 z( p8 T$ T# tradvd 0 1034 0 ra_mgr 1 1 ! L# `5 q2 u! b$ @( A. T2 e0 L1 I+ @
dhcp6s 33 837 0 cspd_misc 1 1
2 w' S6 o2 F% `- ?& Z0 `1 e- `0 K" y6 m$ Hupnpd 66 831 0 cspd_misc 1 1
9 j* Y l1 }9 u% `& Qvoip 2 830 0 cspd_misc 1 1 , w* W; @1 j- D
telnetd 61 828 0 cspd_misc 1 1
n. `0 U( N) W7 W* ^: c5 @httpd 3 826 0 cspd_misc 1 1
0 W9 \ X+ I9 x1 Y; Kgpon_omci 132 823 0 omci_mgr 1 1
' `" v4 f0 }; b4 W9 o$ c1 Q9 Kvsftpd 0 822 0 fm_mgr 1 1
: ^1 w" e+ E; O1 M/ v( [. Mdnsmasq 0 721 0 dns_mgr 1 1 2 T% v5 y: e5 v k3 r4 K v D* O- m: m
cspd 1 402 0 pc 1 1
$ }( V ~0 l! X% Z可以看到我想要的几个服务如telnet,web以及FTP的State都是1,也就是正在运行的状态。
" l* d) F' u0 m9 {8 T R b) V# S, } e) c& @+ O) p3 S
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 ,呵呵,不知道解释清楚没有。, G a! R6 L* ^' N. ^
. U- y5 S! A8 }, P& N4 O+ e5、保存对配置文件的修改:我看了一下sendcmd 1 DB 的命令集里有save的方法,因此我想对用set方法进行过修改的地方最好还是保存一下,命令是: sendcmd 1 DB save ,系统会反馈successed, but no output,也就是说运行成功但是没有返回值,这样其他就意味着已经保存成功了。
4 @! b2 D) F- R9 D
" O8 r0 W. y* T我想总体对我们来说最有用的估计就是上面几条命令了,希望对各位有用。欢迎讨论。2 N& k, p+ q) R; S; ~
* N) E3 L1 W. E6 {5 ?+ y
特别说明,本文是在easehu 大大的帖子 https://www.chinadsl.net/thread-76120-1-1.html 的灵感基础上自己进行的一些深入摸索得到的,感谢easehu的宝贵经验分享。
" ?. o$ A% d4 T# S% A8 L
/ z, X9 _: K! T6 L1 I
4 u+ y/ S9 z |$ I) T% o. o: i5 Y r2 Z L3 Y. s4 j$ \
$ r! r$ I i9 o- L6 f- w |
评分
-
查看全部评分
|