什么是注入?那些可以注入?需要什么条件?

什么是注入?那些可以注入?需要什么条件?,第1张

所谓的SQL(结构化查询语言)注入,简单来说就是利用SQL语句在外部对SQL数据库进行查询,更新等动作。首先,数据库作为一个网站最重要的组件之一(如果这个网站有数据库的话),里面是储存着各种各样的内容,包括管理员的账号密码,

随着B/S模式应用开发的发展,使用该模式编写程序的程序员越来越来越多,但是由于程序员的水平参差不齐,相当大一部分应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要知的数据,这个就是所谓的SQLinjection,即sql注入式攻击。

脚本注入攻击者把SQL命令插入到WEB表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,在某些表单中,用户输入的内容直接用来构造动态的SQL命令,或作为存储过程的输入参数,从而获取想得到的密码或其它服务器上的资料。

注入原理:

网站的配备内容等,一旦里面的数据被某人获得或者是被修改,那么那个人就可能获得整个网站的控制权。至于怎么获得这些数据,那些MSSQL弱口令的就不说,剩下的最有可能就是利用注入漏洞。

当用户在网站外部提交一个参数进入数据库处理,然后把处理后的结果发给用户,这个是动态网页最常见的,但是这个参数一旦没有被过滤,使得我们自己构造的sql语句也可以和参数一起参与数据库 *** 作的,那么SQL注入漏洞就会产生

一个网站上存在外地数据提交是很正常的,一般都是用参数接受(request),然后再进行处理,而涉及于数据库 *** 作的却占了很大的一部分。例如下面的例子

这个地址包含了参数1,以及传递该参数的变量cs,意思就是,的文件夹里有一个1.asp文件,1.asp文件内部存在cs变量,作用就是接受有外部提交的一个参数:1,也可以是其他的,那么在1.ASP这个文件里的相关代码一般

就是这样

本帖最后由 myzuzong 于 2012-4-28 10:00 编辑

只要搞清楚什么是“注入”,和注入其它进程的方式,就知道怎么防御了。

所谓注入,就是程序把自己的代码放到别的进程的地址空间去执行,来对这个进程进行 *** 作,获得、修改进程的数据等。把自己的代码放入别的进程的地址空间,可以让别的进程加载自己的DLL,也可以直接在别的进程地址空间创建远程线程。

进程注入的方法主要有:(1)修改HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs,全局注入DLL到所有使用User32.dll的进程;(2)消息钩子;(3)CreateRemoteThread;(4)Fake DLL。

防(1),用RD;防(2)和(3),在AD里对应的是钩子和访问内存;防(4)一定程度上可以用FD。白+黑也是(4),但是没啥好办法防(无限d窗流就不要说了)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12123152.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存