仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 568|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL网页设计间接猎取Access、SQL Server等数据库数...

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:46:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。access|server|数据|数据库
间接猎取access、SQLServer等数据库数据
Author:Mix
PST,
Ph4nt0mSecurityTeam
http://www.ph4nt0m.org


当利用SQL注进access的时分,常常会碰到暗码为中文、猜不到关头字段名如许的成绩。利用本手艺就可以够很疾速的办理如许的成绩。本手艺最低请求有两条:

1.利用access数据库的体系存在SQL注进毛病;mssql数据库也撑持这个手艺
2.必要晓得欲爆数据地点的表的表名和这个表下的一个字段名,一样平常都是id字段

利用本手艺不言而喻的上风在于:

1.能够不必要引号,过滤引号对本手艺没有影响
2.能够疾速的晓得敏感数据的内容,而不用像以往一样渐渐的猜解,中文、特别字符等等都通杀
3.在SQLServer屏障了毛病信息以后仍旧能够疾速失掉敏感数据内容
4.能够在不晓得关头(欲知数据的)字段名的情形下仍旧可以猎取到欲知数据

咋一看大概这个手艺很难,实在很复杂。一共有两个难点,一样平常的第一个难点在看到了局今后都很简单想到,可是第二个难点却切实其实有点点贫苦。

起首看一个表格,是union的语法。这也是爆出数据的次要道理。以下图所示:



当我们利用SQLInject手艺拔出union语句今后,只需两个select查询失掉的列数不异,那末整条SQL语句实行完成今后,失掉的查询了局就酿成了union前面select失掉的数据。以是就有大概将我们所必要的数据爆出来。来看一个复杂的例子:

http://www.chinakj.com/SoftView.asp?SoftID=3903%20union%20select%20username,password,1,1,1%20from%20admin

这是一个SQLServer的服务器,封闭了毛病信息的报答,以是不克不及够依照以往的办法间接失掉敏感数据。经由过程SQLInject拔出union语句今后,能够勇敢的推测到所实行的SQL语句酿成了:

select*fromSoftwhereSoftID=3903unionselectusername,password,1,1,1fromadmin

那末在一般情形下显现Soft第1、2个字段值得中央就会显现admin的username和password字段,前面的3个1也是同理替换了。依照这个特征,我们固然也能够间接失掉Admin_UserInfo内外面的username和password字段。机关的语句以下所示:

">http://www.chinakj.com/SoftView.asp?SoftID=3903%20union%20select%20username,password,1,1,1%20from%20Admin_UserInfo%20where%20username

以上就是复杂的使用union来完成对敏感数据的猎取,而欠亨过庞大的暴力拆解。为了完成在不晓得字段名一样可以失掉个中的数据这个目标的时分,我们固然就应当想到利用*来取代字段名。如许只需*所代表的字段再加上几个1的数量和剧本中的select查询表中的字段数量不异,那末就一样能够失掉不晓得字段名的数据了。

思索到如许一种情形,有如许一条语句:selectid,hit,softname,softURLfromsoftwhereid=10。个中可以在网页中一般显现出来的字段是softname和softURL,那末我们在利用union的时分就应当调剂*地点的地位,一样平常admin表中布局为idusernamepassword,那末在注进下面这条假定的语句的时分就应当如许机关SQL语句:select1,*fromadmin。使*所取代的username和pssword字段处于softname和softURL两个字段的地位上,如许网页才干够将我们想要得username和password字段乖乖的交出来。固然这里只是最复杂的一个例子来讲明,有良多时分一个内外面大概有十几个字段,我碰到最长的是四十三个字段。那末剧本中利用select*来做查询的话,我们在机关unionselect就应当用1充数到四十三个字段。个中固然是会有一些字段不被网页显现出来,这就必要思索unionselect前面的*号地点的地位了。信任这个应当不必我多说了。

下面说的语法完整切合SQLServer。可是Access和SQLServer比拟较,真的是小巫见年夜巫了。在SQLServer内里,当我们利用select*,1,1,1fromadmin语句查询失掉的纪录汇合分离是:*111。可是在access傍边下面的这条语句查询的了局是111*,也就是说不管你将*号处于这群1两头的甚么地位上,*所代表的数据老是处于查询了局的最初面。用一个庞大点的例子作申明:

http://www.hnp2p.com/mov/view.asp?id=1916%20union%20(select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16%20from%20admin)

这个站点利用的是access数据库,能够看到可以一般显现出来的字段是2、3、7、8、10、11,尔后面的字段却不会显现出来,往失落14,15,16换上*号,页面一样显现出数字,也就是说admin中的字段数是三个,一定是idusernamepassword这类布局,可是除id字段其他的字段都不克不及够被推测着名字。依照在下面SQLServer中所利用的办法挪动*号的地位以求可以将敏感数据爆出来,在access中是不成行的。缘故原由是access一直将*好所取代的字段放在查询数据集的最初面。Access查询出来的了局永久都是:1,2,3,4,5,6,7,8,9,10,11,12,13,*这个模样。为了将*好所取代的字段暗示出来,我们必需将*所取代的字段挪动到其他地位上。先看了局:

http://www.hnp2p.com/mov/view.asp?id=1916%20union%20select%201,*%20from%20(((admin%20as%20a%20inner%20join%20admin%20as%20b%20on%20a.id=b.id)%20inner%20join%20admin%20as%20c%20on%20c.id=b.id)%20inner%20join%20admin%20as%20d%20on%20d.id=c.id)%20inner%20join%20admin%20as%20e%20on%20d.id=e.id

经由过程如许机关的语句的实行,终极查询失掉的数据情势是
12345678910111213141516
1,a.ida.namea.pwdb.idb.nameb.pwdc.idc.namec.pwdd.idd.named.pwde.ide.namee.pwd

个中第3和第7个字段恰好就是我们想要得username和password字段的值。这里我利用的是join语法,将两个表毗连(相加)起来从而机关失掉如许的一个满意我们请求的查询了局。

Join分为全体毗连、左毗连和右毗连,详细区分能够往检察SQL语法。在这里,access中我们不论选择哪种毗连体例效果都同等于全体毗连。看一个复杂的join语法

SELECT*
FROM(表1INNERJOIN表2ON表1.序号=表2.序号)
INNERJOIN表3
ON表1.序号=表3.序号

转换为实例就是:

select1,2,3,4,*
from((adminasainnerjoinadminasbona.id=b.id)
innerjoinadminasconc.id=b.id)
innerjoinadminasdond.id=c.id

依照这类格局就能够把下面的谁人url真正实行的SQL语句解出来,不过就是不休的利用join毗连数据表admin,然后经由过程1来补齐后面的字段数量。只需语句构建妥当,那末不晓得字段名的数据全体都可以在页面中显现出来。这就是这个手艺的难点地点了。

好了,全体都先容完了。假如想把这个手艺写成程序的话,也是很有大概的。只不外在语句布局机关的时分最好仍是利用人脑吧~~~呵呵
如果互联网服务提供商,支撑数据的云服务,或它们之间任一点网络被堵塞或中断,他们就会遇到与数据延迟或应用程序故障有关的问题。如果问题发生在企业内部,解决方案提供商可以排除故障找出原因。
不帅 该用户已被删除
沙发
发表于 2015-1-19 23:09:48 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-26 10:00:44 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
再现理想 该用户已被删除
地板
发表于 2015-2-4 13:53:20 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-28 12:05:36 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
若天明 该用户已被删除
6#
发表于 2015-3-9 23:03:36 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
爱飞 该用户已被删除
7#
发表于 2015-3-17 03:07:51 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
活着的死人 该用户已被删除
8#
发表于 2015-3-23 17:35:47 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 21:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表