google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

[求助] SQL注入怎么注入

SQL注入怎么注入


哪个高手讲的简单易懂一点,老师给的视频看不懂

TOP

什么视屏啊,共享看看:)

TOP

sql注入的原理就是通过在客户端提交特殊代码获取服务器和程序的信息。
一般可以通过sql注入的网站都是由于程序员再写代码时没有对数据进行合法验证

TOP

写sql语句的时候 尽量保证用参数传递

TOP

这属于安全测试~!
我们知道,在SQL语句中,可以使用各种MySQL内置的函数,经常使用的就是DATABASE()、USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()这些函数来获取一些系统的信息,还有一个应用得比较多的函数,就是load_file(),该函数的作用是读入文件,并将文件内容作为一个字符串返回。

TOP

举个例子吧:
  select * from openrowset('sqloledb','myserver';'sa';'','select * from table')
  可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset 。
  那么我们能不能利用它调用xp_cmdshell呢?答案是肯定的!
  select * from openrowset('sqloledb','server';'sa';'','set fmtonly off
  exec master.dbo.xp_cmdshel l ''dir c:\''')
  必须加上set fmtonly off用来屏蔽默认的只返回列信息的设置,这样xp_cmdshell返回的output集合就会提交给前面的select显示,如果采用默认设置,会返回空集合导致select出错,命令也就无法执行了。
  那么如果我们要调用sp_addlogin呢,他不会像xp_cmdshell返回任何集合的,我们就不能再依靠fmtonly设置了,可以如下操作:
  select * from openrowset('sqloledb','server';'sa';'','select ''OK!''
  exec master.dbo.sp_addlogin Hectic')
  这样,命令至少会返回select OK!'的集合,你的机器商会显示OK!,同时对方的数据库内也会增加一个Hectic的账号,也就是说,我们利用select 'OK!'的返回集合欺骗了本地的select请求,是命令能够正常执行,通理sp_addsrvrolemember和opendatasource也可以如此操作!至于这个方法真正的用处,大家慢慢想吧。

TOP

讲起来好复杂的,SQL注入的方式很多,关键还是要开发注意编码方式和规范。避免可能出现注入的情况。
楼主如果有兴趣,可以搜索google。好多的知识材料。

TOP

谢谢楼上的个位发言
学习了 。。。。。
华山论贱;人皆犯贱,我不犯贱,人若犯贱,我必犯贱!

TOP

 
当前时区 GMT+8, 现在时间是 2008-12-2 22:06Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹