数据需求 网站建设,中国建设银行投诉网站,wordpress前端投稿上传图片,坪山网站建设资讯目录
二次注入的原理#xff1a;
实战#xff1a;
第一步#xff1a;找注入点
找漏洞#xff1a;
注入大概过程#xff1a;
第二步#xff1a;开始注入 二次注入的原理#xff1a; 二次注入是由于对用户输入的数据过滤不严谨#xff0c;导致存在异常的数据被出入…目录
二次注入的原理
实战
第一步找注入点
找漏洞
注入大概过程
第二步开始注入 二次注入的原理 二次注入是由于对用户输入的数据过滤不严谨导致存在异常的数据被出入数据库中当我们从数据库中二次使用该数据时就会产生注入行为。 二次注入也是较为常见的注入方式。
实战
我们在sql靶场进行操作本次的实战是sql靶场的第二十四关 第一步找注入点
我们通过查看源码可知此关卡共有一下几个php页面。 经过大致的解读代码这几个页面中可能存在注入点的php页面为pass_change.phplogin.phplogin_create.php三个页面。这三个页面的功能分别为修改密码登录创建新用户。 找漏洞
我们观察这三个页面的php关键代码
login.php login_create.php pass_change.php 我们发现在我们输入的关键字段都被函数mysql_real_escape_string过滤了。这个函数的意思是对用户输入的敏感字符进行转义(在关键字符上连接一个反斜线进行转义)我们去php官网查看 缺陷该函数虽然可以对用户输入的进行过滤但是在写入数据库中时并不会将其一并代入数据库。那么我们就可以从此点入手。 列子我们注册一个用户用户名为admin# 去数据库中查看发现特殊字符一并存入了数据库。 我们继续观察发现在pass_change.php中的sql语句中会使用用户名来筛选并修改密码但是该用户名是直接从数据库中取出的并没有使用mysql_real_escape_string函数进行过滤那么我们就可以发现本次的注入点就在这里。 注入大概过程
我们可以找到一个用户的用户名但是我们并不知道它的密码。之后进入注册页面注册新的用户名在进入密码修改界面修改密码。这就是本次注入的大概流程。 第二步开始注入
1假设我们已经知道了一个用户叫做secure 2进入注册页面
注册一个用户名叫secure# 的用户 3我们使用自己注册的用户登录进入密码修改界面
修改新密码为aaaaaa pass_change.php代码分析
本次执行的sql代码为
$sql UPDATE users SET PASSWORD$pass where username$username;
这里的用户名为本次登录的用户名并且直接从数据库中读取没有进行过滤当前的用户名为
secure。
实际执行的代码为如下 通过sql语句可以看到我们实际上修改的为secure用户的密码。 4使用我们修改的密码aaaaaa,来进行登录secure用户。 成功的登入了secure用户。 5说明我们成功的使用sql注入利用漏洞拿到了secure用户的密码本次实验圆满成功。本次实验就是典型的二次注入。