2015-02-24 207 views
1

我正在使用netcat,它接受一个I​​P和一个端口,并要求用户输入用户名和密码登录。因此,netcat IP PORT将生成欢迎消息并询问用户名和密码。 如果我的用户名和密码是user1和pass1,我如何将它们送入netcat?如何使用已知的用户名和密码登录bash?

我试过 (echo“user1”& echo“pass1”)| ncat“$ EXP_IP”“$ EXP_PORT” 但它似乎无法识别密码。它会生成一条询问密码的消息。 我应该怎么做bash?我对bash很陌生。任何帮助将不胜感激!!

+0

服务器期待什么样的协议? – 2015-02-24 19:37:54

+1

你总是可以使用“Expect脚本”来传递密码,这很简单。有一种更简单的方法,我不知道(如果你不想使用期望) – Aman 2015-02-24 19:38:39

+0

我研究了“期望脚本”并发现它很有用。执行ncat将需要用户名和密码。它可以执行类似的,而执行ncat,期待“用户名:”发送“密码”;期待“密码:”发送“密码”? – ccczhang 2015-02-24 20:14:23

回答

0

根据我们在评论中的对话,事实证明你非常接近,通过将&字符更改为';'并添加第二个';'性格,你的问题解决了。改变

(echo "user1" & echo "pass1") | ncat "$EXP_IP" "$EXP_PORT" 

(echo "user1" ; echo "pass1" ;) | ncat "$EXP_IP" "$EXP_PORT" 
# ------------^here----------^and here 

的分号终止每个命令,从而能够执行的 “下一个” 命令。对于echo "pass1" ;的情况,这是子外壳分组中的最后一个命令,因此如果有;字符,则允许完成echo,并且子外壳将完成并关闭。我不会冒险猜测这些数值何时发送到ncat

IHTH

0

这取决于网站。

您需要使用HTTP POST或HTTP PUT请求返回您的用户名和密码,我将使用curl来执行此操作。当您查看普通网站中的页面时,您还需要查看流量。查看发送回服务器的内容以及POST请求如何格式化,发送回来的变量名称将依赖于网站。当您通过浏览器正常登录时,您可以使用浏览器中的Web控制台来确定发回的内容,并复制该POST请求。

+0

我想我没有清楚地描述我的问题。基本上,netcat只会询问我已经知道的用户名和密码。我只想知道如何格式化用户名和密码输入,以便当netcat询问名称和密码时,我可以将这两个信息提供给它。 – ccczhang 2015-02-24 20:02:03

+1

如果您试图模拟真正的交互性(“...当netcat要求输入名称和密码时”),您正在处理一个非常困难的问题,并且最好遵循@Aman的建议使用Expect。如果你想*假设*一些时间延迟可能会在一段时间内工作,你可以在bash中使用子壳,回声和睡眠。我建议你调查Expect。 – mpez0 2015-02-24 20:08:14

+0

ccczhang - 我知道你就是这么说的。我所说的是,输入格式与您定位的网站有很大差异,因为表单字段名称和输入方法与用户名和密码的不同取决于网页设计者编写网站的方式。其实,这是我必须同意mpez0和@Aman的一个重要原因。期望是为了这样的东西而建造的。 – djhaskin987 2015-02-24 20:11:36

相关问题