**
bugku-web基础$_GET
**
curl http://123.206.87.240:8002/get/?what=flag
curl -I http://123.206.87.240:8002/get/
**
bugku-web基础$_POST
**
curl -X POST http://123.206.87.240:8002/post/ -d "what=flag"
**
实验吧-貌似有点难
**
查看源代码得知我们需要修改请求头的ip(即伪造ip)
curl http://ctf5.shiyanbar.com/phpaudit/ -H "x-forwarded-for:1.1.1.1"
得到flag:
**
实验吧-天下武功为快不破
**
题目:
There is no martial art is indefectible, while the fastest speed is the only way for long success.
----You must do it as fast as you can!----
curl -I http://ctf5.shiyanbar.com/web/10/10.php | grep FLAG //-I 获取响应头
curl -I http://ctf5.shiyanbar.com/web/10/10.php -s | grep FLAG //-s slicet 不会出现详细信息。
curl -I http://ctf5.shiyanbar.com/web/10/10.php -s | grep FLAG | awk '{print $2}' //awk命令 print是打印的意思,$2截取第一行
。以空格为分隔符,自动分行。
flag=$(curl -I http://ctf5.shiyanbar.com/web/10/10.php -s | grep FLAG | awk '{print $2}')
echo $flag | base64 -d 2> /dev/null //在这里的意思是就是把base64:无效去除掉
如图:
命令行交互:
flag=$(curl -I http://ctf5.shiyanbar.com/web/10/10.php -s | grep FLAG | awk '{print $2}')
//把命令执行的结果复制给flag这个变量。
echo $flag
echo $flag | base64 -d 2> /dev/null
echo $flag | base64 -d | cut -d":" -f2 //这里不能使用awk命令,因为语句中没有空格作为分割符。-d指定分割符 -f指定列数
flag1=$(echo $flag | base64 -d | cut -d":" -f2)
curl http://ctf5.shiyanbar.com/web/10/10.php -X POST -d "key:flag1“
上脚本:
#!/bin/bash
flag=$(curl -I http://ctf5.shiyanbar.com/web/10/10.php | grep FLAG | awk '{print $2}')
data=$(echo $flag | base64 -d 2> /dev/null | cut -d":" -f2)
curl -X POST http://ctf5.shiyanbar.com/web/10/10.php -d "key=$data"
总结:
发送带参数的Get请求,可以将参数直接写在URL中。
root@kali:~# curl http://123.206.87.240:8002/get/?what=flag
如果要发送POST请求,需要用-X选项指定。
root@kali:~# curl http://123.206.87.240:8002/post/ -X POST
通过-d选项,可以指定POST要发送的参数:
root@kali:~# curl http://123.206.87.240:8002/post/ -X POST -d "what=flag"
注意:curl不能做有session会话的题。