您的位置:首页 > 其它

关于国内某CMS系统备份文件命名规则产生的爆破字典挫码

2012-07-07 04:59 633 查看
其实也就想写出来。所以命名没有注意。,但是懒得改。很乱,将就着吧- -。表示其实你们可以边看边骂,我无所谓。

由于某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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: