burp suit抓包实操-ctfhub

提交注入主要涉及到攻击者通过向Web应用程序提交特定的数据,利用这些数据在数据库中执行非预期的SQL语句。

1. 基于“或”条件的注入

在用户登录的场景中,攻击者可以通过输入特定的SQL语句来绕过身份验证。例如,一个简单的登录查询可能如下所示:

SELECT * FROM Users WHERE Name = '用户输入的用户名' AND Pass = '用户输入的密码';

如果攻击者在用户名字段中输入:

' OR '1'='1

最终生成的SQL语句将变为:

SELECT * FROM Users WHERE Name = '' OR '1'='1' AND Pass = '';

由于'1'='1'始终为真,这将返回所有用户的信息,攻击者可以轻松绕过登录验证。

2. 基于批处理SQL语句的注入

许多数据库支持批处理SQL语句,攻击者可以利用这一点执行多个SQL命令。例如,假设用户输入的ID如下:

105; DROP TABLE Suppliers;

生成的SQL语句将会是:

SELECT * FROM Users WHERE UserId = 105; DROP TABLE Suppliers;

这将导致“Suppliers”表被删除。

3. 使用注释符号进行注入

攻击者可以通过在SQL语句中添加注释符号来操控查询。例如,假设有以下查询:

SELECT id FROM users WHERE username='用户输入' AND password='用户输入';

如果攻击者输入如下密码:

password' OR '1'='1' -- 

最终生成的SQL语句将变为:

SELECT id FROM users WHERE username='用户输入' AND password='password' OR '1'='1' -- ';

这里--后面的内容被视为注释,从而使得条件始终为真。

4. 通过表单字段注入

在一个需要用户填写名字和姓氏的表单中,攻击者可以在名字字段中输入恶意代码。例如:

  • 名字:malicious'ex
  • 姓氏:Smith

生成的SQL查询可能会是:

SELECT id, firstname, lastname FROM authors WHERE firstname = 'malicious'ex' AND lastname ='Smith';

由于引号的不匹配,这将导致SQL语法错误,但也可能被利用来执行其他恶意操作。

5. 使用参数化查询防止注入

为了防止SQL注入,推荐使用参数化查询。以下是一个使用参数化查询的示例:

txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = @0";
db.Execute(txtSQL, txtUserId);

这种方式确保用户输入被视为数据而不是代码,从而有效防止了SQL注入。


提交注入

主要包括 SQL 注入、XSS 注入和命令注入。

SQL 注入是通过在应用程序的输入字段中插入恶意 SQL 代码,来绕过应用程序的验证机制,从而执行非预期的 SQL 操作。
登录表单注入
假设登录表单有用户名和密码两个输入框,后端 SQL 查询语句可能是这样的:
SELECT * FROM users WHERE username = '$username' AND password = '$password';

恶意用户可以在用户名输入框中输入如下内容:
' OR '1'='1

如果密码输入框随便输入一个值,最终拼接后的 SQL 语句就会变成:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '随便输入的值';

由于 '1'='1' 始终为真,这样恶意用户就可以绕过正常的用户名和密码验证,直接登录系统。
搜索框注入
假设搜索框对应的 SQL 查询语句为:
SELECT * FROM products WHERE product_name LIKE '%$search_term%';

恶意用户可以在搜索框输入:
' OR 1=1 --

拼接后的 SQL 语句变为:
SELECT * FROM products WHERE product_name LIKE '%' OR 1=1 -- %';

-- 是 SQL 中的注释符号,它会将后面的内容注释掉,而 1=1 恒为真,这样就会返回表中所有的记录。

XSS 注入(跨站脚本攻击)

XSS 注入是攻击者通过在目标网站注入恶意脚本,当其他用户访问该页面时,脚本会在用户的浏览器中执行,从而窃取用户的敏感信息。
反射型 XSS
假设一个搜索页面会将用户输入的搜索关键词显示在页面上,URL 可能是这样的:
http://example.com/search.php?keyword=搜索内容

恶意用户可以构造如下 URL:
http://example.com/search.php?keyword=<script>alert('XSS攻击')</script>

当用户点击这个链接时,浏览器会执行注入的 JavaScript 代码,弹出一个提示框。

存储型 XSS

在一些允许用户提交评论的网站,如果没有对用户输入进行严格过滤,恶意用户可以在评论框中输入如下内容:

当其他用户查看该评论时,脚本会在他们的浏览器中执行,从而将他们的 cookie 信息发送到攻击者的服务器。

命令注入

命令注入是攻击者通过应用程序的输入点,注入系统命令,从而在服务器上执行恶意命令。
简单的命令注入示例
假设一个应用程序允许用户输入一个 IP 地址,然后使用 ping 命令来测试该 IP 是否可达,后端代码可能会执行类似这样的命令:
ping -c 4 $ip_address

恶意用户可以在输入框中输入:
127.0.0.1; ls -l

这样,服务器实际执行的命令就变成了:
ping -c 4 127.0.0.1; ls -l

; 是命令分隔符,服务器会先执行 ping -c 4 127.0.0.1,然后执行 ls -l,攻击者就可以通过这种方式查看服务器上的文件列表。

实操


image
像ctfhub技能树的http基础认证那一题,在获取到这串编码时
image
直接将抓到的数据包发送到Intruder这个模块,再进行爆破

posted on   Arya32f  阅读(3)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示