adworld web新手区记录

get_post

难点

卡在了上面这一步,原本想用burpsuite抓GET请求包,然后稍加改造,得到一个带有b=2的POST请求包
原本想用burp suite抓包,对get请求进行修改,得到一个post包。
但是并没有成功,返回的依然是原来的页面。
用了max hackbar仿造post请求,成功了。用burpsuite查看它的内容,发现增加了很多的字段:


图片.png

果然要想仿造一个POST请求没有那么简单啊。。

xff_referer

这里可以用burpsuite对请求包进行修改。(突然意识到burpsuite只针对应用层的http和https,低层次好像都接触不到)
添加了X-Forwarded-For字段和Referer字段即可
这两个字段的作用:

X-Forwarded-For字段

Xff表明了该请求包的原始发起方ip,以及过程中的各个代理服务器的IP。这是因为现如今绝大多数的网络请求都要经过代理服务器的转发,为了能够让服务器得知最初的发起方是谁,需要中间的服务器加上一个xff用于标识前一个连接的对等方是谁。这样服务器就能够构造出请求包的转发链。
该字段一般格式如下:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
说明一下上面这个例子说明了什么。要注意的一点是,xff字段是代理服务器自行添加的,也就是说代理服务器可以不加这个字段(burpsuite不就默认没有加嘛,服务器根本意识不到发送来的包有一个burpsuite做中介)。这里先假设代理服务器都非常自觉,都很诚实的加上了这个字段,那么服务器就可以得知,这个包依次经过了client1, proxy1, proxy2, proxy3,原始发起方为client1。
但是鉴于这个字段的伪造是非常容易的,随之而来的安全问题也就多了。毕竟几乎谁都可以伪造这个字段,客户端也可以说,我是转发别人的包,这个人是123.123.123.123,你看你服务器怎么跟他回复,这样,客户端不管是什么IP,都可以获得服务器对123.123.123.123的响应了。

一般意义上的代理转发和bp的转发有点不一样。一般意义上,代理服务器和客户端是两台分离的主机,那么客户端需要先和代理服务器建立连接,代理服务器再和服务器建立连接,这样的话,有些字段是需要改的,比如传输层的源IP、目的IP。但是bp默认是在同一个主机上的,因此也许并不用修改字段?(等等,bp好像没有显示传输层的字段,不懂到底是怎么样的。。用wireshark看一下吧)

再者,如果不能保证过程中的代理服务器都诚实,那服务器到底怎么确定原始IP是谁呢?(感觉代理服务器就好像应用层的路由器似的)

Referer字段

这个字段会标识这个请求字段是由那个页面的连接发起的。如我从百度搜索中找到一个页面,那么referer就会是https://www.baidu.com
这个字段最常见的作用有二:

  1. 统计流量。目的页面的管理员就可以得知如何引流。
  2. 外链拦截。如果来源不是指定的一些连接的话,就拒绝访问。
    由此,可以引申出,针对不同的前向连接,该页面做出不同的响应来回复。
    但是这个字段也非常好构造。。

ps.常见的http伪造字段

图片.png

webshell

这题涉及到了一句话后门的使用

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

以上为典型的一句话木马,实际上就是一个php代码。
任何的脚本语言都可以调用系统命令,包括php。php代码中,可以利用system('command');执行指定的代码。此外,eval()函数可以将传入的参数作为字符串,解析成一个php代码并执行。因此,只要post上去一个shell参数,参数内容为一个操作系统命令,就可以利用浏览器从客户端指示服务器做特定操作,因此称为webshell。这一类漏洞称为代码执行漏洞,类似的有一种漏洞叫命令执行漏洞。
php在执行层面还有许多的漏洞,如动态函数调用,甚至只要传入一个指定函数名字符串,在变量名后面加()就能调用指定名称的函数了。
其他漏洞详情可见《高级php应用程序漏洞审核技术》。
有输入的地方就有可能有漏洞。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容