1、产生原因
SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄漏的一种漏洞。
2、攻击流程
3、注入点类型
数字型注入(POST)
打开pikachu,找到数字型注入(POST),这里可以选择userid 返回用户名和邮箱
可以看出来这是一个数字查询,抓包看看一下也可以看出来这是一个post方法。
看到id,我们可以猜想直接修改id是否可以成功执行。(id修改成1 or 1=1)
修改id后可以看出来查询,我们可以猜想后台出现SQL漏洞,猜想SQL语句为
select name,email from table where id = $id
所以我们修改之后的id =1 or 1=1,就会变成
select name,email from table where id = 1 or 1=1
因为 1=1 肯定为成立,所以我们可以将所以的成员查出来。
字符型注入
打开网页找到字符型输入kobe
我们也可以猜想查询语句
select name,email from table where id = ‘$name‘
当我们输入 kobe‘ or ‘1‘=‘1
查询语句就是,当然我们也可以通过注释来输入比如kobe‘ or 1=1#
。
select name,email from table where id = ‘kobe‘ or ‘1‘=‘1‘
这样我们可以查询所以成员
这样我们就攻击成功了。
搜索型注入
打开网页我们可以发现,可以输入一部分即可查找。
猜想后台查询语句
select name,email from table where id = ‘%$name%‘
这样我们就可以构造攻击语句
select name,email from table where id = ‘%k%‘ or 1=1#
select name,email from table where id = ‘%k%‘ or ‘1‘=‘1‘#%‘
这样我们可以尝试攻击输入k%‘ or ‘1‘=‘1‘#
或者k%‘ or 1=1#
这样我们就攻击成功了。
xx型注入
这里我们可以先查看后后台代码
想着尝试怎么去攻击a‘) or 1=1#
尝试攻击
这样我们就攻击成功了。
pikachu---SQL注入
原文:https://www.cnblogs.com/renletao/p/13266790.html