DDMGloba拼多多商家编码怎么填填什么?

2006年5月 PHP大版内专家分月排行榜第二2006年4月 PHP大版内专家分月排行榜第二2007年1月 PHP大版内专家分月排行榜第二
2013年10月 其他开发语言大版内专家分月排行榜第三2007年2月 PHP大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。  在最近的渗透测试项目中,为了进一步验证漏洞的可用性和危害性,我们遇到了这样一种情形:构造基于时间差反馈的系统注入命令(OS command injection time based ),从某逻辑隔离的服务器中实现数据获取。以下是测试过程中的相关思路整理,仅供借鉴参考(渗透测试最终利用工具请移步GitHub-TBDEx)。
  漏洞说明
  由于该逻辑隔离服务器仅能通过API服务提供的程序接口实现特定服务访问,而在对该API接口的测试过程中,我们发现了一个有趣的GET request请求,其中包含了两个参数,一个为字符串,另一个为请求包的ID号。
  之后在对参数的fuzzing中,其对单引号的处理方式和特征貌似像是SQL注入漏洞,但在漏洞利用过程中却不能成功实现注入攻击,然而,当我们执行了‘sleep 10′命令后,HTTP response在10秒钟之后有了回应,这下可能有戏了!我们首先想到的是,该API程序完蛋了,因为这样就可以对API服务端执行远程代码了。
  Payload不能有效执行
  但一切都高兴得太早,本来我们通过HTTP响应头判断API服务应该是架设在Windows平台上,但漏洞利用payload只在Bash或PowerShell下可用,所以,只能重新在Bash或PowerShell模式下进行可行性测试。为了模拟实际测试效果,我们通过在linux环境下运行形如以下、包含sleep命令的“time if”判断语句来查看系统反馈信息:
  linux下time命令可以获取到一个程序的执行时间,包括程序的实际运行时间(real time),以及程序运行在用户态的时间(user time)和内核态的时间(sys time)。
  利用这种方式,我们在模拟服务器上进行了各种ncat、wget、curl测试和其它数据窃取动作,如FTP 连接、 DNS请求,甚至是ICMP请求,但依然不能成功,没有效果。后来,我们才意识到,由于目标服务器主机处于有防火墙的逻辑隔离网络内,我们执行的命令估计被防火墙阻挡了。
  构造基于时间延迟的判断执行命令
  之后,一个同事建议可以尝试用形如以下sleep语句来运行包含的任务命令,这样一方面可以通过时间延迟来逐字符判断输出值,又能实现命令自动化,就像从基于时间(time-based)的SQL注入中获取输出信息一样。
  考虑到网络延迟,我们首先想到的是,构造一个包含以下命令,按字符位置进行猜解判断的脚本,可以看到,以下黄色框内命令中:
  time if [ $(whoami | cut -c 1 == r)]; then sleep 5; fi
  如果系统用户为root,通过whoami | cut -c 1 == r 方式取root的第一个字符“r”成功,则相应的时间延迟为5秒,与判断命令中的sleep 5结果一致,以此方式猜解出系统用户为root。
  Linux系统cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
  -b :以字节为单位进行分割
  -c :以字符为单位进行分割,cut -c 1 取第1个字符-d :自定义分隔符,默认为制表符
  -f :与-d一起使用,指定显示哪个区域
  -n :取消分割多字节字符
  突破限制构造有效Payload命令
  你可以想像用这种方式是多么的繁杂,更烦人的是,前述发现的GET请求参数中竟然有48个字符的最大限制, 而我们构造的payload远远超过48个字符。为了绕过这种限制,我们只有把任务命令的输出结果重定向到系统某个临时文件中,然后用cut方式分割这些输出结果,取出需要的位置字符,结合time命令的时间延迟方式判断猜解,大概方法如下:
  使用以上方法构造的payload可以控制在48个字符以内,但是在payload获取数据时候又遇到字符限制的问题:只能获取9个字符以内的数据。之后,我们想到可以向远程主机中分段写入命令,形成脚本,之后,利用这个过渡脚本就可以执行某种命令。
  我们最终把以上这些所有想法和思路集成为了一个python工具TBDEx(Time Based Data Exfiltration Tool),另外,为了提高运行效率,用猜解判断字符的ASCII码值方式替代了单纯的字符判断。
  为什么不用Commix?
  Commix是一款系统命令注入漏洞自动化测试工具,它具有包含Time-based在内的很多数据获取技术。可能有人会问,怎么不用Commix呢?这主要有两方面原因:
  Commix形成的payload非常长而且在我们的渗透场景中执行不成功
  Commix对我们特定命令的执行非常耗时,读取一个whoami命令都很慢
  TBDEx如何使用?
  该工具包含三个部分:
  length.py或length.bat:猜测判断重定向输出文件中包含的执行命令结果长度
  ascii.py或ascii.bat:猜测判断特定位置字符的ASCII码值
  timebased.py:程序执行主文件,发送命令请求并分析响应时间是否满足漏洞利用条件
  数据获取过程:
  把执行命令结果重定向输出到某个文件
  用length.py或length.bat猜测判断执行命令结果输出长度猜解判断获取数据的实际ASCII码值
  对执行命令结果输出长度的判断,请遵循以下几个综合判断步骤:
  1.输出长度是否大于 0? : python l.py 0 0 0 4 =&没有检测到延迟,这意味着它是真的;
  2.输出长度是否大于10?: python l.py 10 0 0 4 =&检测到4秒延迟,这意味着这是假的
  3.输出是否等于10?: python l.py 10 1 0 4 =&没有检测到延迟,这意味着是假的
  4.输出是否等于9?: python l.py 9 1 0 4 =& 检测到4秒延迟,这意味着我们找到了实际的输出长度
  得到执行命令输出结果长度之后,我们就可以用程序进行实际的ASCII码值猜解:
  python ascii.py {CHAR_POS} {ASCII_VALUE} {IS_GREATER} {WHERE_THE_OUTPUT_IS_AT} {TIME_DELAY}
  当然,用主程序来执行的例子如下:
  python timbesed.py -url http://192.168.207.128/ml.php?c=%here% -payload_limit 48 -tmp
  执行uname -a:
  完美获取长度达2863字符的/etc/password结果:
  测试链接http://192.168.207.128/ml.php中的ml.php可以是以下内容,感兴趣的话,可以自行尝试:
  运行TBDEx工具的必备安装组件pycurl:
  pip install pycurl
  apt-get install pycurl
  apt-get install python-pycurl
  TBDEx的使用命令和运行参数:
  -h, –help show this help message and exit
  -url URL URL
  -post POST POST
  -threads THREADS Threads
  -cookie COOKIE FILE Cookie File
  -file HEADER FILE Burp request file
  -retry RETRY Retry request N times in case of network errors
  -timeout TIMEOUT General timeout request
  -time AVGTIME Added timeout to request
  -os OS OS type (U unix/linux , W windows)
  -payload limit LIMIT If there is any command length limitation
  -force write Force writing auxiliary files
  -tmp Writing auxiliary files in tmp folder
  TBDEx工具下载:Github(/dancezarp/TBDEx)
(*参考来源:securitycafe,clouds编译,来自FreeBuf)
炼石信息安全培训春季班开招
敬请持续关注……
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。查看:2170|回复:9
Redhat下at命令执行结果怎么查?
初级工程师
你要看什么啊? 说清楚了
引用:原帖由 linuxyy 于
08:50 发表
你要看什么啊? 说清楚了 [root mail]# at 06:45
看一下ps的执行结果,现在只是在系统的消息日志里有显示,不知道还有别的方法没?
初级工程师
atq就可以了
初级工程师
你可以在打命令时把结果输出到一个文件夹里就好了
哈哈,我也是这样干的,虽然本办法,但是实用 ...
初级工程师
引用:原帖由 xujingle1988 于
22:49 发表
[root mail]# at 06:45
看一下ps的执行结果,现在只是在系统的消息日志里有显示,不知道还有别的方法没? at time &ps &a file cat afile
引用:原帖由 linuxyy 于
19:00 发表
atq就可以了 atq只是使用指定的列队吧,查看的话有点牵强吧
初级工程师
引用:原帖由 小鬼忻3 于
14:13 发表
atq只是使用指定的列队吧,查看的话有点牵强吧 at time &ps &a file cat afile
初级工程师
引用:原帖由 xujingle1988 于
22:49 发表
[root mail]# at 06:45
看一下ps的执行结果,现在只是在系统的消息日志里有显示,不知道还有别的方法没? at time &ps &a file cat afile
atq应该是显示队列用的,把命令执行结果输入文件应该是个不错的办法,谢谢各位!

我要回帖

更多关于 邮政编码怎么填 的文章

 

随机推荐