SQL Injection

sqlmap使用

霸气de小男生 提交于 2021-02-20 04:54:23
SQLmap是一种开源渗透测试工具,可自动执行SQL注入缺陷的检测和开发过程,并接管数据库服务器。它有强大的检测引擎,针对不同类型的数据库提供多样的渗透测试功能选项,实现数据库识别、数据获取、访问DBMS\操作系统甚至通过带外数据连接的方式执行操作系统的命令。以及从数据库指纹识别、从数据库获取数据、访问底层文件的广泛范围的交换机通过带外连接在操作系统上执行命令。 SQLMAP支持的数据包括:MySQL, Oracle,PostgreSQL,Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库。 Sqlmap使用经验总结 1 在使用-v参数的时候,尽量选择,3级别,次级别可以显示注入的参数。 例如:sqlmap -v3 -u www.potian.com 2 当一件知道数据库信息的时候,使用-d直接连接数据库,注意-D是指定目标库,要区分。 例如:-d mysql://POTIAN : 123123 @127.0.0.1:3306/ ORDER 3 当使用Burp或WebScarab保存了日志的时候,想从日志文件中筛选目标,可使用-I使用 绝对路径地址即可。 4 -g可以使用google的搜索结果,例如,直接搜索uid=,查找具有此参数的站点

最新最全的sqlmap命令中文详解以及插件功能详解[最全]

女生的网名这么多〃 提交于 2021-01-30 14:50:14
前言:不知不觉已经上班已经三个星期,在公司一直在忙公司的事情,所以博客好久没更了,今天刚好有时间把前端时间刚翻译完的sqlmap全部命令发出来    在公司里面主要做渗透测试,所以像sqlmap,nmap这些工具用的很多,但是全部命令都是英文的,这对非英语母语的人是很不友好的,所以就萌生了能不能把这些常用的工具的命令全部翻译出来,不仅方便了自己,也能方便一切其他人,所以利用上周的空闲时间把sqlmap全部的翻译完了,同时由于sqlmap很多命令讲的不清不楚的,试着尽量将命令讲的更清楚点,同时也把大部分的插件的功能详细介绍了一下,我有打算出一系列的这类资料,所以在我的github上面建立了一个远程仓,现在已经将sqlmap的上传上去了,以后还会有nmap,hydra等等     GitHub地址:https://github.com/spacesec/normaltool Sqlmap全部命令中文详解 ___ __H__ ___ ___[)]_____ ___ ___ {1.2.3.25#dev} |_ -| . ["] | .'| . | |___|_ [,]_|_|_|__,| _| |_|V |_| http://sqlmap.org Usage: sqlmap.py [options] Options: -h, --help Show basic help message

Nmap扫描总结

耗尽温柔 提交于 2021-01-18 07:48:32
Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全,堪称神器   Nmap官方网址:https://nmap.org/ 基本功能 : 探测一组主机是否在线 扫描主机端口,嗅探所提供的服务 推断主机所用的操作系统 支持探测脚本的编写 最简单的就是ping命令 发送简单的icmp报文 不能进行网段中扫描  SYN探测 俩次握手    TCP/IP标志位: ACK FIN RST SYN PSH URG 扫描结果(不一定靠谱):   open  closed   filtered    unfiltered    open|filtered      closed|filtered  开放  关闭  过滤的     被过滤的    开放或被过滤的     关闭或被过滤的 主机发现和目标扫描: -P* (用于选择ping的类型)可以被结合使用  可以使用不同的tcp端口/标志位和ICMP码发送许多探测报文,为了增加穿透防守严密的防火墙机会   -P0(无ping)  完全跳过nmap发现阶段,每个IP地址都重点扫描,包括没有主机存活的ip,如果在命令行指定一个B类地址空间,所有65536个ip都会被扫描(非常慢)

安全|Dvwa渗透测试网站搭建

ⅰ亾dé卋堺 提交于 2020-12-29 10:18:52
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号: "算法与编程之美",欢迎关注,及时了解更多此系列文章。 Dvwa简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。 DVWA共有十个模块,分别是: Brute Force(暴力(破解)) Command Injection(命令行注入) CSRF(跨站请求伪造) File Inclusion(文件包含) File Upload(文件上传) Insecure CAPTCHA (不安全的验证码) SQL Injection(SQL注入) SQL Injection(Blind)(SQL盲注) XSS(Reflected)(反射型跨站脚本) XSS(Stored)(存储型跨站脚本) DVWA 1.9的代码分为四种安全级别: Low,Medium,High,Impossible。 Dvwa网站搭建 第一步下载 phpstudy(https://www.xp.cn/wenda/401.html) 由于Dvwa是php网站,所以需要在php环境下运行。 安装完成后打开phpstudy并启动以下两项

SQL Injection (Blind)

好久不见. 提交于 2020-11-21 01:51:13
Low级别基于布尔的盲注思路 1.判断是否存在注入,注入是字符型还是数字型 2.猜解当前数据库名 3.猜解数据库中的表名 4.猜解表中的字段名 5.猜解数据 判断是否有sql注入 输入1、1’ and 1=1 #、1’ and 1=2#得到结果User ID exists in the database.可以判断存在sql注入 猜解当前数据库名 想要猜解数据库名,首先用二分法猜解数据库名的长度,然后挨个猜解字符。 1 ' and length(database())>5 # -- 显示不存在;说明库名长度<=5 1 ' and length( database ()) > 3 # -- 显示存在;说明长度>3 and <=5 1 ' and length(database())=4 # -- 显示存在: 采用二分法猜解数据库名 1 ' and ascii(substr(databse(),1,1))>97# -- 显示存在,说明数据库名的第一个字符的ascii值大于97(小写字母a的ascii值); 1 ' and ascii (substr(databse(), 1 , 1 )) < 122 # -- 显示存在,说明数据库名的第一个字符的ascii值小于122(小写字母z的ascii值); 1 ' and ascii(substr(databse(),1,1))<109# --

SQL Injection

淺唱寂寞╮ 提交于 2020-11-21 01:27:10
Low级别 判断是否存在注入点 输入1提交 输入1 and 1=1提交 SELECT first_name, last_name FROM users WHERE user_id = ' 1 ' 输入1 and 1=2提交 由上可以看出是存在注入点的,参数为id SELECT first_name, last_name FROM users WHERE user_id = ' id ' 利用漏洞获取信息 获取当前库名 1后面的‘是为了使前面的参数闭合最后的#是为了注释‘ 1 ' union select 1,database()# 实际执行sql SELECT first_name, last_name FROM users WHERE user_id = ' 1 ' union select 1 , database ()# ' 根据库名获取所有表名 1后面的‘是为了使前面的参数闭合最后的#是为了注释‘ 1 ' union select 1,table_name from information_schema.tables where TABLE_SCHEMA= ' dvwa ' # 底层执行sql SELECT first_name, last_name FROM users WHERE user_id = ' 1 ' union select 1 ,table_name

【SQL注入】之SQLMAP工具的使用

隐身守侯 提交于 2020-11-02 15:56:16
(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦) 一、介绍 1.SQL注入工具: 明小子、啊D、罗卜头、穿山甲、SQLMAP等等 2.SQLMAP: 使用python开发,开源自动化注入利用工具,支持12种数据库 ,在/plugins/dbms中可以看到支持的数据库种类,在所有注入利用工具中它是最好用的!!! 3.支持的注入类型: bool、time、报错、union、堆查询、内联 4.功能: 可以获取用户名、密码、权限、角色、数据库(表、字段、内容) 可以爆破识别密文数据 getshell(反弹shell) 命令执行 脱库或删库 二、SQLMAP的目录介绍: 目录 介绍 doc 介绍文档 extra sqlmap额外的功能,运行cmd、执行命令 lib sqlmap 的核心功能代码 plugins 包含12种数据库的识别程序 data 存放一些攻击过程种使用的工具或者命令 /data/procs 包含了mssql、mysql、oracle、postgresql这四种数据库的触发程序 /data/shell 远程命令、后门 /data/txt 表名、列名、UA字典 /data/udf 存放攻击载荷(payload) /data/XML 存放检测脚本(payload) tamper 包含各种绕过WAF的处理脚本 thirdparty 包含第三方插件

如何有效防止sql注入

心已入冬 提交于 2020-10-29 05:54:40
SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想获取的数据,这就是所谓的SQL Injection,即SQL注入。 一 背景 假如某高校开发了一个网课系统,要求学生选课后完成学习,数据库中有一张表 course ,这张表存放着每个学生的选课信息及完成情况,具体设计如下: 数据如下: 本系统采用mysql做为数据库,使用Jdbc来进行数据库的相关操作。系统提供了一个功能查询该学生的课程完成情况,代码如下。 @RestController public class Controller { @Autowired SqlInject sqlInject; @GetMapping("list") public List<Course> courseList(@RequestParam("studentId") String studentId){ List<Course> orders = sqlInject.orderList(studentId); return orders; } } @Service public

burpsuite Brute Force DVWA

送分小仙女□ 提交于 2020-09-30 00:48:15
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。 DVWA共有十个模块,分别是Brute Force、Command Injection(命令行注入)、CSRF(跨站请求伪造)、File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)。 DVWA的代码分为四种安全级别:Low,Medium,High,Impossible。初学者可以通过比较四种级别的代码,接触到一些PHP代码审计的内容。 Brute Force,即BF,是指利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一,如2014年轰动全国的12306“撞库”事件,实质就是暴力破解攻击。 low难度 增加概率,多次重试 首先拦截登录请求: Ctrl+L发送到Intruder: 要爆破的是password,所以把password的值用$包起来

SQL注入绕过mysql_real_escape_string()

允我心安 提交于 2020-08-17 08:25:44
问题: Is there an SQL injection possibility even when using mysql_real_escape_string() function? 即使使用 mysql_real_escape_string() 函数,也有可能进行SQL注入吗? Consider this sample situation. 考虑此示例情况。 SQL is constructed in PHP like this: SQL是用PHP构造的,如下所示: $login = mysql_real_escape_string(GetFromPost('login')); $password = mysql_real_escape_string(GetFromPost('password')); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'"; I have heard numerous people say to me that code like that is still dangerous and possible to hack even with mysql_real_escape_string() function used. 我听过很多人对我说