Sqli-LABS通关笔录-17-审计SQL注入

时间:2022-08-10 23:05:01

这个关卡开始好像进入新的知识区了,前面几个是让我们加深对盲注的印象。接下来又是新知识了!皮卡丘,接招吧!

代码是从SQL-libs的第十七关卡扣的。

页面效果如下所示:

Sqli-LABS通关笔录-17-审计SQL注入

PHP面完整CODE如下所示:

 <?php
include("../sql-connections/sql-connect.php");
error_reporting(); function check_input($value) #定义一个函数为check_input,里面有一个参数为$value。
{
if(!empty($value)) #当参数不为空的时候
{
// truncation (see comments)
$value = substr($value,,); #参数如果的话执行该条语句,使用substr函数对参数进行截取取从第0位到第15位的数据。
} // Stripslashes if magic quotes enabled
if (get_magic_quotes_gpc()) #判断php.ini是否开启了魔术引用。
{
$value = stripslashes($value); #如果开启了对魔术引用进行反转。这个的意思就是不需要去掉魔术引用
} // Quote if not a number
if (!ctype_digit($value)) #ctype_digit:检测是否都是数字,负数及小数都不行,也就是说如果不为数字,为负数或者小数的执行22行代码。
{
$value = "'" . mysql_real_escape_string($value) . "'"; #关于mysql_real_escape_string()函数的更多解释:http://www.w3school.com.cn/php/func_mysql_real_escape_string.asp } else
{
$value = intval($value); #获取$value的整数
}
return $value;
} // take the variables
if(isset($_POST['uname']) && isset($_POST['passwd'])) #判断user和passwd有没有设置 {
//making sure uname is not injectable
$uname=check_input($_POST['uname']); #使用check_input函数对传过来的uname参数进行过滤 $passwd=$_POST['passwd']; #过滤的很好,但是密码就没过滤了。问题的关键处出在这里! //logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'User Name:'.$uname."\n");
fwrite($fp,'New Password:'.$passwd."\n");
fclose($fp); // connectivity
@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1"; $result=mysql_query($sql);
$row = mysql_fetch_array($result);
//echo $row;
if($row)
{
//echo '<font color= "#0000ff">';
$row1 = $row['username'];
//echo 'Your Login name:'. $row1;
$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
mysql_query($update);
echo "<br>"; if (mysql_error())
{
echo '<font color= "#FFFF00" font size = 3 >';
print_r(mysql_error());
echo "</br></br>";
echo "</font>";
}
else
{
echo '<font color= "#FFFF00" font size = 3 >';
//echo " You password has been successfully updated " ;
echo "<br>";
echo "</font>";
} echo '<img src="../images/flag1.jpg" />';
//echo 'Your Password:' .$row['password'];
echo "</font>"; }
else
{
echo '<font size="4.5" color="#FFFF00">';
//echo "Bug off you Silly Dumb hacker";
echo "</br>";
echo '<img src="../images/slap1.jpg" />'; echo "</font>";
}
} ?>

见39行,未对齐进行过滤进而造成SQL注入

Sqli-LABS通关笔录-17-审计SQL注入

这题其实跟之前的一样。可以使用延时注入来注入。至于为啥工具没跑出来我真心不懂。

THE END


Sqli-LABS通关笔录-17-审计SQL注入的更多相关文章

  1. Sqli-LABS通关笔录-18-审计SQL注入2-HTTP头注入

     在此关卡我学习到了 1.只要跟数据库交互的多观察几遍.特别是对于http头这种类型的注入方式. 2. <?php //including the Mysql connect parameter ...

  2. php代码审计3审计sql注入漏洞

    SQL注入攻击(sql injection)被广泛用于非法获取网站控制权,在设计程序时,忽略或过度任性用户的输入,从而使数据库受到攻击,可能导致数据被窃取,更改,删除以及导致服务器被嵌入后门程序等 s ...

  3. Sqli labs系列-less-5&amp&semi;6 报错注入法(上)

    在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于 ...

  4. Sqli labs系列-less-5&amp&semi;6 报错注入法(下)

    我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...

  5. Java审计之SQL注入篇

    Java审计之SQL注入篇 0x00 前言 本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长. 0x01 JDBC 注入分析 ...

  6. &lpar;其他&rpar;SQL注入&lpar;转&rpar;

    转自*: SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,在这种应用程序中,恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者).[1] SQL注入必须利用应用程序软件 ...

  7. &lbrack;原题复现&plus;审计&rsqb;&lbrack;网鼎杯 2018&rsqb; WEB Fakebook&lpar;SSRF、反序列化、SQL注入&rpar;

    简介  原题复现:  考察知识点:SSRF.反序列化.SQL注入  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 过 ...

  8. 浅析白盒审计中的字符编码及SQL注入

    尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...

  9. Sqli-LABS通关笔录-8&lbrack;延时注入&rsqb;

    通过该关卡我学习到了 1.if语句的三目运算符(其实说白了也就是php里的三位运算符) 2.sleep函数 3.substring函数(其实和substr一样) 4.limit的灵活运用 5. Sta ...

随机推荐

  1. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  2. AngularJS中的JSONP实践

    欢迎大家指导与讨论: ) 概念 首先呢,Json和JSONP是不一样的哦.Json呢,是众多数据存储的其中一种格式,是数据书写方式的其中一种.好比是大中华众多诗体的一种(比如说是七言诗吧).这种诗体规 ...

  3. 图片上传安全性问题,根据ContentType &lpar;MIME&rpar; 判断其实不准确、不安全

    图片上传常用的类型判断方法有这么几种---截取扩展名.获取文件ContentType (MIME) .读取byte来判断(这个什么叫法来着?).前两种都有安全问题.容易被上传不安全的文件,如木马什么的 ...

  4. IO调度器&lpar;二&rpar; IO的中断返回

    IO的中断返回也是相当让人激动的一件事情: 28470  1)               |        handle_irq() { 28471  1)   0.237 us    |      ...

  5. Spring&period;Net的IOC入门

    1.构造器注入 namespace Spring.Net { class Program { //构造器注入 static void Main(string[] args) { IApplicatio ...

  6. 原生的ajax(json)

    function getXHR(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ try{ return new Ac ...

  7. django框架中的中间件

    什么是中间件 中间件就是在url进入路由之前进行检测的一个类 也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对 ...

  8. MAC 终端走代理服务器

    问题描述: MAC 终端,默认不走代理服务器:即浏览器已经可以FQ,但是终端不行: 解决方案:直接设置终端的代理,本文 用的是 *X: 打开终端,直接执行:(执行后,只对当前终端起 ...

  9. 虚拟机linux系统明明已经安装了ubuntu,但是每次重新进入就又是选择安装界面

    本文转载:https://blog.csdn.net/weixin_41522164/article/details/82814375

  10. zoj3659

    #include<iostream> #include<algorithm> #include<cstring> #define ll long long #inc ...