关于国内某CMS系统备份文件命名规则产生的爆破字典挫码
2012-07-07 04:59
633 查看
其实也就想写出来。所以命名没有注意。,但是懒得改。很乱,将就着吧- -。表示其实你们可以边看边骂,我无所谓。
由于某CMS备份数据库的时候命名太过于挫。因此产生的备份文件可以通过穷举路径把它找出来。其实代码我都看不下去了。太特么乱了。但是博客好久没写了,哥其实是黔驴技穷了才拿它顶事。
首先先看下那个破CMS的备份代码把。
看出问题了吗 - -。里面的变量$p是备份文件序号,而每次备份至少有一个文件。所以$p 等于1的情况是绝对每次都有的。所以要穷举出某天的备份 最多只要9999-1000次。于是产生了如下。
以上生成下面类似的字典
/20110701_1000_1.sql
/20110701_1001_1.sql
/20110701_1002_1.sql
...
/20110701_9999_1.sql
/20110702_1000_1.sql
/20110702_1001_1.sql
/20110702_1002_1.sql
...
/20110702_9999_1.sql
由于某CMS备份数据库的时候命名太过于挫。因此产生的备份文件可以通过穷举路径把它找出来。其实代码我都看不下去了。太特么乱了。但是博客好久没写了,哥其实是黔驴技穷了才拿它顶事。
首先先看下那个破CMS的备份代码把。
public function insertsql(){ //...省略一堆无关代码... $random = mt_rand(1000, 9999); //...省略一堆无关代码... $filename = $file.date('Ymd').'_'.$random.'_'.$p.'.sql'; //...省略一堆无关代码... }
看出问题了吗 - -。里面的变量$p是备份文件序号,而每次备份至少有一个文件。所以$p 等于1的情况是绝对每次都有的。所以要穷举出某天的备份 最多只要9999-1000次。于是产生了如下。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) edt1: TEdit; btn1: TButton; edt4: TEdit; edt5: TEdit; edt6: TEdit; edt7: TEdit; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; const arrMonth : array[0..11] of integer=(31,29,31,30,31,30,31,31,30,31,30,31); implementation {$R *.dfm} function addEx(i:Integer):string; begin if i<10 then Result := '0'+inttostr(i) else Result := inttostr(i); end; procedure TForm1.btn1Click(Sender: TObject); var fDateFile: TextFile; i,j,x,iStart,iEnd,iStart2,iEnd2,iStart3,iEnd3: Integer; //20120705_3269_12.sql sExWord,sExWord2,sNewWord: string; begin AssignFile(fDateFile,'c:\data370.dic'); Rewrite(fDateFile); // iStart := StrToInt(edt2.Text); // iEnd := StrToInt(edt3.Text); iStart2 := StrToInt(edt4.Text); iEnd2 := StrToInt(edt5.Text); iStart3 := StrToInt(edt6.Text); iEnd3 := StrToInt(edt7.Text); for x:=iStart3 to iEnd3 do begin sExWord := edt1.Text; //这里是年份。 sExWord := '/' + sExWord + addEx(x); //不够10的补个0 iEnd := arrMonth[x-1]; for i:=1 to iEnd do begin sExWord2 := sExWord + addEx(i)+'_'; for j:=iStart2 to iEnd2 do begin sNewWord := sExWord2 + IntToStr(j)+'_1.sql'; Writeln(fDateFile,sNewWord); end; end; end; showmessage('ok'); CloseFile(fDateFile); end; end.
以上生成下面类似的字典
/20110701_1000_1.sql
/20110701_1001_1.sql
/20110701_1002_1.sql
...
/20110701_9999_1.sql
/20110702_1000_1.sql
/20110702_1001_1.sql
/20110702_1002_1.sql
...
/20110702_9999_1.sql
相关文章推荐
- zencart模板系统中css文件命名规则
- Java编译后产生class文件的命名规则
- (转)Java编译后产生class文件的命名规则
- 最近系统整理一下 linux 各配置文件备份、编译命令备份、源文件路径、编译命名路径等记录
- AIX文件系统基本之文件命名建议与规则
- Linux系统根文件以及命名规则详解
- linux系统下的文件命名规则
- Java编译后产生class文件的命名规则
- Java编译后产生class文件的命名规则
- solaris x86 系统上的scsi 和 iSCSI 磁盘设备文件命名规则
- Java编译后产生class文件的命名规则
- Java编译后产生class文件的命名规则
- Java编译后产生class文件的命名规则
- 关于日常系统文件备份脚本一条命令
- 不同系统下的文件命名规则(部分参考网上资料)
- 【Flume】flume中sink到hdfs,文件系统频繁产生文件,文件滚动配置不起作用?
- php入门篇------->PHPCMS 入口文件,自动加载系统函数和URL规则
- WIN7上实现一开机就自动连接宽带 && WIN7自带的系统备份和还原 && WIN7盘符混乱 && WIN7查看隐藏文件 && WIN7禁止提示更新 && WIN7备份和恢复
- 《淘宝技术这十年》淘宝文件系统-tfs的产生