DVWA中low级的sql注入漏洞的简单复现
第一次成功复现一个简单漏洞,于是写下这篇随笔记录一下
首先我们来看dvwa中low级的sql注入的源码
源码文件路径如下图:

源码如下:
<?php
if(isset($_GET['Submit'])){
// Retrieve data
$id = $_GET['id'];
$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );
$num = mysql_numrows($result);
$i = 0;
while ($i < $num) {
$first = mysql_result($result,$i,"first_name");
$last = mysql_result($result,$i,"last_name");
$html .= '<pre>';
$html .= 'ID: ' . $id . '<br>名字: ' . $first . '<br>姓氏: ' . $last;
$html .= '</pre>';
$i++;
}
}
?>
简单分析一下源码,
当php确认用户提交表单后开始执行,接受id参数给$id,未经任何过滤直接用sql语句查询数据库,最后将查询后的结果集中的数据打印出来
接下来为了复现漏洞,用phpMyAdmin创建一个新数据库
创建了一个test的数据库,库里创建了users表,表中随便写了一些数据如下:

然后写一个可以查询数据库内容的网页,开始复现漏洞
代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
<form action="" method="GET">
<p>id:<br/><input type="text" name="id"> <input type="submit" name='submit' value="submit"/>
</p>
</form>
<?php error_reporting(E_ALL&~E_NOTICE); // 连接数据库和test表
$con=mysql_connect("localhost","root","root");
if (!$con){
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db("test", $con); if(isset($_GET['submit'])){ //判断表单是否提交
$id=$_GET['id']; //接受表单中id的参数赋给$id
$sql="SELECT user_name FROM users WHERE user_id='$id'"; //sql查询语句 //执行查询语句并将结果集赋给$result
$result=mysql_query($sql) or die('<pre>' . mysql_error() . '</pre>' ); $num = mysql_numrows($result);
$i = 0;
while ($i < $num) { //提取$result的结果集中的user_name的数据并将其赋给$name
$name = mysql_result($result,$i,"user_name"); // 将$id和$name的值拼接在变量$html上最后打印出来
$html .= '<pre>';
$html .= 'ID: ' . $id . '<br>名字: ' . $name;
$html .= '</pre>';
$i++;
}
echo $html;
} ?>
</body>
</html>
测试


先试试正常的输入,显示出与用户ID相应的用户名

接着试试 万能密码 ,显示出了所有用户名
接着就是查看数据库及其管理员账号


接着是一系列sql注入

爆数据库名

爆列名(这里好像把dvwa数据库的users表里的内容也爆出来了……)

爆user_pwd里的内容
总结
复现漏洞的过程中,能逐渐理解、明白漏洞的原理,清楚代码的构造,收获很大。
DVWA中low级的sql注入漏洞的简单复现的更多相关文章
- [CVE-2014-3704]Drupal 7.31 SQL注入漏洞分析与复现
记录下自己的复现思路 漏洞影响: Drupal 7.31 Drupal是一个开源内容管理平台,为数百万个网站和应用程序提供支持. 0x01漏洞复现 复现环境: 1) Apache2.4 2) Php ...
- mybatis的sql中使用$会出现sql注入示例
mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: function login(){ //sql注入 var user = { username : "' ...
- 关于ECSHOP中sql注入漏洞修复
标签:ecshop sql注入漏洞修复 公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程 ...
- sqlmap查找SQL注入漏洞入门
1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...
- 手工检测SQL注入漏洞
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...
- SQL注入漏洞总结
目录: 一.SQL注入漏洞介绍 二.修复建议 三.通用姿势 四.具体实例 五.各种绕过 一.SQL注入漏洞介绍: SQL注入攻击包括通过输入数据从客户端插入或“注入”SQL查询到应用程序.一个成功的S ...
- SQL注入漏洞知识总结
目录: 一.SQL注入漏洞介绍 二.修复建议 三.通用姿势 四.具体实例 五.各种绕过 一.SQL注入漏洞介绍: SQL注入攻击包括通过输入数据从客户端插入或“注入”SQL查询到应用程序.一个成功的S ...
- 从c#角度看万能密码SQL注入漏洞
以前学习渗透时,虽然也玩过万能密码SQL注入漏洞登陆网站后台,但仅仅会用,并不理解其原理. 今天学习c#数据库这一块,正好学到了这方面的知识,才明白原来是怎么回事. 众所周知的万能密码SQL注入漏洞, ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
随机推荐
- JavaScript最后的课程笔记
一.快捷位置和尺寸 DOM已经提供给我们计算后的样式,但是还觉得不方便,所以DOM又提供给我们一些API: ele.offsetLeft ele.offsetTop ele.offsetWidth e ...
- ajaxFileUpload 文件上传
源码: jQuery .extend({ createUploadIframe : function(id, uri) {//id为当前系统时间字符串,uri是外部传入的json对象的一个参数 //c ...
- 开源在线分析诊断工具Arthas(阿尔萨斯)--总结
阿里重磅开源在线分析诊断工具Arthas(阿尔萨斯) arthas用法 启动demo java -jar arthas-demo.jar 启动 java -jar arthas-boot.jar at ...
- [UE4]Overlap Event 碰撞事件
一.对于VR中角色的手模型,一般是在角色中另外添加一个球型碰撞体 二.并且一定要勾选“Generate Overlap Events(触发重叠事件)”选项(默认状态是勾选的) 三.添加开始碰撞事件 ...
- Mysql 数据库复制
Mysql 数据库复制 数据库复制是一种同步手段,主库向一台或多台数据库同步数据. 这个功能我自己曾经用uts数据传输工具实现过! 现在学习了一下mysql数据库复制的其他方式 第一个就是最简单的使用 ...
- 欢迎来到GitHub世界
什么是GitHub GitHub(Pronunciation:/githʌb/) 这是一个为开发者提供Git仓库的托管服务,这是一个让开发者们共享代码的完美场所.GitHub公司总部位于美国旧金山, ...
- Ajax2简单的使用方式
http://www.cnblogs.com/Ming8006/p/6142191.html
- Win 10更新版1709有哪些新功能值得关注!
windows 10秋季创意者更新版1709发布已经有段时间了,也有很多用户选择升级这次更新的系统.那么,这次Win 10 更新版1709有哪些新功能值得关注呢?下面,一起随主机吧来看一看吧! 1. ...
- vs2015 iis express启动不了及安装DotNetCore.1.0.0-VS2015Tools.Preview2失败的解决方法
直接用管理员账户打开cmd,进入exe所在的文件夹在运行命令DotNetCore.1.0.0-VS2015Tools.Preview2.exe SKIP_VSU_CHECK=1不要加引号. PS:如果 ...
- alpha阶段发布博客
我们的Phylab网站发布了! Alpha版本功能 模块 功能 注册界面 根据邮箱,学号等信息注册新用户 登陆界面 根据账号信息登陆 用户界面 查看,修改用户信息和签名 实验报告界面 查看各个实验预习 ...