📄 scandir.pas
字号:
{##########################################
旁注入侵专用程序 3.0升级版
----------------------------------------
模块:旁注检测 - 扫描整站目录
描述:该单元为扫描整站目录的窗口单元
作者:2005.3.22日晚 明小子
##########################################}
unit ScanDir;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CheckLst, ComCtrls, DB, ADODB, Buttons;
type
TScanDirForm = class(TForm)
CheckListBox1: TCheckListBox;
Button1: TButton;
StatusBar1: TStatusBar;
Label1: TLabel;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
EdAddress: TEdit;
Label2: TLabel;
Button6: TButton;
ADOQuery1: TADOQuery;
SpeedButton1: TSpeedButton;
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ScanDirForm: TScanDirForm;
Bool: Boolean = True;
implementation
uses MainUnit;
{$R *.dfm}
procedure TScanDirForm.FormCreate(Sender: TObject);
var
i: integer;
begin
i := -1;
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'select * from Scan_DirFile';
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
inc(i);
CheckListBox1.Items.Add(ADOQuery1.fieldbyname('dirfile').AsString);
CheckListBox1.Checked[i] := True;
ADOQuery1.Next;
end;
StatusBar1.Panels[0].Text := ' 提示: 共载入了' + inttostr(CheckListBox1.Items.Count) + '个检测目录!';
end;
procedure TScanDirForm.SpeedButton1Click(Sender: TObject);
begin
close;
end;
procedure TScanDirForm.Button5Click(Sender: TObject);
begin
Bool := False;
MainForm.OpenFile.DefaultExt := 'txt';
MainForm.OpenFile.Filter := 'TXT文件 (*.txt)|*.txt|DIC文件 (*.dic)|*.dic|全部文件|*.*';
if MainForm.OpenFile.Execute then
CheckListBox1.Items.LoadFromFile(MainForm.OpenFile.FileName);
end;
procedure AllSelectChk(ChkBox: TCheckListBox; Bool: Boolean = True); {SQL注意 - 全选 & 反选}
var
i: integer;
begin
for i := 0 to ChkBox.Items.Count - 1 do
ChkBox.Checked[i] := Bool;
end;
procedure TScanDirForm.Button3Click(Sender: TObject);
begin
AllSelectChk(CheckListBox1);
end;
procedure TScanDirForm.Button4Click(Sender: TObject);
begin
AllSelectChk(CheckListBox1, False);
end;
procedure TScanDirForm.Button1Click(Sender: TObject);
var
S: string; {SQL注入 - 添加表名 & 列名的过程}
B: Boolean;
begin
S := '';
b := inputquery('添加检测目录', '添加目录 ', s);
if B then
if Trim(S) <> '' then
begin
CheckListBox1.Items.Add(StringReplace(S, ' ', '', [rfReplaceAll]));
CheckListBox1.Checked[CheckListBox1.Items.Count - 1] := True;
CheckListBox1.ItemIndex := CheckListBox1.Items.Count - 1;
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'select * from Scan_DirFile';
ADOQuery1.Open;
ADOQuery1.AppendRecord([nil, s]);
end;
end;
procedure TScanDirForm.Button2Click(Sender: TObject);
begin
if CheckListBox1.ItemIndex < 0 then {SQL注入 - 删除表名 & 列名的过程}
begin
application.MessageBox('请先选中你所要删除的记录!', '提示', 48);
Exit;
end;
if Bool then
begin
if application.MessageBox('确定要删除该记录吗?', '提示', 32 + MB_YESNO) = 6 then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'select * from Scan_DirFile';
ADOQuery1.Open;
ADOQuery1.RecNo := CheckListBox1.ItemIndex + 1;
ADOQuery1.Delete;
CheckListBox1.DeleteSelected;
end;
end
else
CheckListBox1.DeleteSelected;
end;
procedure TScanDirForm.Button6Click(Sender: TObject);
var
s: string;
begin
s := s + '附加目录格式: ' + #13;
s := s + '如: /admin' + #13;
s := s + '或: /admin/data' + #13;
s := s + '前面要有一个/,后面则不需要!' + #13;
s := s + '---------------------------' + #13;
s := s + '最后组合起来的格式将是:' + #13;
s := s + '网址 + 附加目录 + 检测的目录地址' + #13;
s := s + '如果不需要附加目录则默认为空!' + #13;
application.MessageBox(pchar(s), '使用说明', 32);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -