网络安全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
相关推荐
笑小枫4 分钟前
用 Claude Code 推翻重写笑小枫网站
java·人工智能·spring boot·ai编程
北冥you鱼10 分钟前
OpenZeppelin Contracts 完全指南:从入门到精通,构建安全的智能合约
安全·区块链·智能合约
霸道流氓气质17 分钟前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
独隅37 分钟前
IntelliJ IDEA 接入多种AI大模型插件终极指南(2026.1 企业合规版)
java·人工智能·intellij-idea
知识分享小能手38 分钟前
统计学学习教程,从入门到精通,参数估计 — 知识点详解与公式推导(10)
学习·机器学习·概率论
有Li41 分钟前
EvoMDT:用于多癌种结构化临床决策的自进化多智能体系统文献速递/医学智能体前沿
人工智能·学习·分类·文献·医学生
还是奇怪1 小时前
Simon Willison 用 DSPy 优化 Datasette Agent 提示词:提示工程正在变成可测试的软件工程
java·开发语言·软件工程
头茬韭菜1 小时前
4.9 SSRF 防护 — Web 工具的出站安全与私有 IP 拦截
前端·tcp/ip·安全
zfoo-framework1 小时前
1.ansible安装 2.虚拟机克隆
java
码上解惑2 小时前
从 Dify 工作流说起:常用节点怎么选、怎样组合?
java·人工智能·ai·agent·dify·智能体·spring ai