Skip to main content

Linux的bash下建立TCP连接发送http请求

·22 words
Linux CTF
Yalois
Author
Yalois
freedom
Table of Contents

前段在ISCC里面做了个题目,反弹shell进入docker容器之后需要发送一个http请求来获取flag。但是各种命令(curl/wget)都没法用,最后绞尽脑汁想出了一个办法,那就是用/dev/tcp发送请求。今天来总结一下。之前写博客都写的十分详细,把概念什么的都写出来。。。更像个新手教程,每次写博客都花费大量的时间,我觉得还是简单点好,以后遇到问题能直接复制博客来用就行了。

#!/bin/bash

#建立TCP连接,格式/dev/tcp/host/port
exec 5<>/dev/tcp/www.sky233.top/80
#发送http请求,(自己构造http请求头)
echo -e "GET /flag HTTP/1.1\r\nhost: www.sky233.top\r\nConnection: close\r\n\r\n" >&5
#打印返回结果
cat <&5

image-20240730162704951

参考文章
#

https://eightpigs.io/2023/06/30/use_dev_tcp_send_http_request/

https://w0lfram1te.com/exploring-dev-tcp

https://tldp.org/LDP/abs/html/devref1.html