二次注入的几个要点
- 知道存在用户的一个用户名
- 第一次注册时候 数据经过转义
- 二次修改直接从数据库中提取,不进行转义
查看源代码
假设我们此时已经知道了admin 这个用户 此时我们如何创建一个用户并且最后能够通过二次注入 将其密码修改成我们所需要的?
修改密码的源代码
Validating the user input…
$username= $_SESSION[“username”];
c
u
r
r
_
p
a
s
s
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
curr\_pass= mysql\_real\_escape\_string(
curr_pass=mysql_real_escape_string(_POST[‘current_password’]);
p
a
s
s
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
pass= mysql\_real\_escape\_string(
pass=mysql_real_escape_string(_POST[‘password’]);
r
e
_
p
a
s
s
=
m
y
s
q
l
_
r
e
a
l
_
e
s
c
a
p
e
_
s
t
r
i
n
g
(
re\_pass= mysql\_real\_escape\_string(
re_pass=mysql_real_escape_string(_POST[‘re_password’]);
if(
p
a
s
s
=
=
pass==
pass==re_pass)
{
s
q
l
=
"
U
P
D
A
T
E
u
s
e
r
s
S
E
T
P
A
S
S
W
O
R
D
=
′
sql = "UPDATE users SET PASSWORD='
sql="UPDATEusersSETPASSWORD=′pass’ where username=‘
u
s
e
r
n
a
m
e
′
a
n
d
p
a
s
s
w
o
r
d
=
′
username' and password='
username′andpassword=′curr_pass’ ";
r
e
s
=
m
y
s
q
l
_
q
u
e
r
y
(
res = mysql\_query(
res=mysql_query(sql) or die('You tried to be smart, Try harder!!! 😦 ');
KaTeX parse error: Expected 'EOF', got '#' at position 60: …ize="3" color="#̲FFFF00">'; echo…row==1)
{
echo “Password successfully updated”;
}
else
{
header(‘Location: failed.php’);
//echo 'You tried to be smart, Try harder!!! 😦 ';
}
可以看到我们的用户修改数据库时候直接用的直接用的 "UPDATE users SET PASSWORD=‘
p
a
s
s
′
w
h
e
r
e
u
s
e
r
n
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
[外链图片转存中…(img-YEX8XZnk-1712717792159)]