渗透测试学习2---DVWA之SQL Injection

本文详细介绍了在DVWA中进行SQL Injection渗透测试的过程,从Low到Impossible四个难度级别,包括测试注入点、判断注入类型、获取数据库信息、获取表和字段以及绕过防御措施的方法。在High和Impossible级别,还探讨了防御策略,如PDO的使用和Anti-CSRF token。此外,还提到了利用into outfile()函数写入webshell的操作。
摘要由CSDN通过智能技术生成

1.low

PHP源码:

<?php

if( isset( $_REQUEST[ 'Submit' ] ) ) {
   
	// Get input
	$id = $_REQUEST[ 'id' ];

	// Check database
	$query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
	$result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );

	// Get results
	$num = mysql_numrows( $result );
	$i   = 0;
	while( $i < $num ) {
   
		// Get values
		$first = mysql_result( $result, $i, "first_name" );
		$last  = mysql_result( $result, $i, "last_name" );

		// Feedback for end user
		$html .= "<pre>ID: {
     $id}<br />First name: {
     $first}<br />Surname: {
     $last}</pre>";

		// Increase loop count
		$i++;
	}

	mysql_close();
}

?>

从源码看出 , 服务器端直接接收参数$_GET[ ‘id’ ]没做任何处理

1.测试注入点,若存在,判断注入类型

输入

  • 1
  • 1’
    在这里插入图片描述
    说明可能存在注入,并且知道了使用的是mysql数据库。然后判断注入类型
输入 结果
1’ and ‘1’='2 查询结果为空
1’ or ‘1’='1 在这里插入图片描述

说明是字符型注入

2.判断查询字段的个数
输入 结果
1’ order by 2 # 查询成功
1’ order by 3 #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值