相关阅读
视频讲解
图文讲解
下面教程中使用的靶场是OWASP MUTILLIDAE II
我们访问mutillidae/webservices/rest/ws-user-account.php?username=adrian
发现在返回的json中有用户名和个人签名
![图片[1]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045037594-1024x119.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
我们尝试通过BurpSuite进行拦截修改请求重新发包
- 打开BurpSuite,开启拦截(Intercept is on显示为蓝色代表打开了)
![图片[2]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045355300-1024x246.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 打开FoxyProxy选择BurpSuite模式(默认监听8080端口)
![图片[3]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045322150-1024x192.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 再次请求刚才的页面,可以看到BurpSuite抓到了相关请求
![图片[4]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045505728-1024x346.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 右键,将其发送到Repeater中
![图片[5]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045532881-1024x486.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
- 然后尝试修改其中的请求,重新发送查看显示结果
![图片[6]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045604511.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
通常情况下,我们可以在参数值后面输入单引号'
,查看报错
我们可以看到这里提示SQL语句有误
![图片[7]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045738550-1024x558.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
再往下看,我们发现这里打印了报错时提交到数据库的SQL语句
![图片[8]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045831382-1024x560.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
知识铺垫(适用于零基础的小伙伴们)
这里简要的分享一下SQL语句的一些细节,你可以访问下面的链接进行测试
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
我们查看默认的语句,这里是查询Customers表中的全部内容
SELECT * FROM Customers;
![图片[9]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813050204731-1024x476.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
那如果我们想只看顾客的用户名(CustomerName)和地址(Address)应该怎么输入呢?
SELECT CustomerName,Address FROM Customers;
可以看到现在就只显示顾客的用户名和地址了!
![图片[10]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813050356500-1024x506.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
如果我们只想看某个用户的呢?比方说我只想看Alfreds Futterkiste
用户的信息?
SELECT CustomerName,Address FROM Customers where CustomerName = 'Alfreds Futterkiste'
![图片[11]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813051030533-1024x373.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
这里我们再看另一张表Employees,这里有姓、名、生日、招聘、备注
![图片[12]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813050450390-1024x511.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
UNION语句的玩法
我们这里如果想关联两张表的信息,查看Alfreds Futterkiste
用户的生日、备注应该怎么操作呢?
SELECT CustomerName,Address FROM Customers where CustomerName = 'Alfreds Futterkiste' UNION SELECT BirthDate,Notes from Employees
奇葩的事情发生了,你会发现用户名(CustomerName)、地址(Address)的地方显示了生日(BirthDate)、备注(Notes)的信息,你可以理解为UNION SELECT在这里其实是一种覆盖的作用,那你是不是能够猜到后面我们是如何针对靶场将其用户名、密码等信息导出来的了?
![图片[13]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813051305348-1024x625.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
我们在刚才的报错后面再加入相关语句,可以看到数据库执行成功了,并且拿到了我们想要的用户名、密码等信息!
![图片[14]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813045941313-1024x556.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
当然,你还可以自己研究下CONCAT的玩法,其实就是将字段、文本进行拼接处理
![图片[15]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813051900931-1024x322.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
比方说将刚才注入的语句进行修改
![图片[16]-【视频讲解】黑客如何使用SQL注入导出网站的用户信息-FancyPig's blog](https://static.iculture.cc/wp-content/uploads/2022/08/20220813052031658-1024x555.png?x-oss-process=image/auto-orient,1/format,webp/watermark,image_cHVibGljL2xvZ28ucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMTA,x_10,y_10)
我们可以看到这里密码前面都会多出一个password is
的提示,是不是还蛮有趣的!
- 最新
- 最热
只看作者