Web:
HTTP如何通过表单传递文件
使用方法如下:
-
<form action="目标地址" method="发送方式" enctype="数据主体的编码方式"> <!-- 各类型的表单域 --> <input name="NAME" value="VALUE"/> <textarea name="NAME">VALUE</textarea> <select name="NAME"> <option value="VALUE" selected="selected"/> </select> </form>
表单中存在各种类型的表单域标签,如<input/>、<textarea/>及<select/>。每一种表单域标签均有NAME与VALUE两种标签属性。这两个标签属性决定了表单提交时传送的属性名及相应的值。
-
action标签属性指定了表单提交的目标地址,其值可以是完整的URL。
-
如果放置表单的网页与表单提交的目标地址在同一个HTTP服务器上,则目标地址可以用绝对路径表示(绝对路径相对于HTTP服务器)。绝对路径以“/”开头,包括WEB应用上下文及请求。如:
<form action="/hello/checkUser.html"></form>
如果放置表单的网页与表单提交的目标地址在同一个WEB应用上下文上,则目标地址可以用相对路径表示(相对路径相对于放置表单的网页)。相对路径不以“/”开头,不包括WEB应用上下文。如:
<form action="checkUser.html"></form>
需要注意的是,action标签属性的值必须符合URL的要求,其编码必须符合application/x-www-form-urlencoded编码规则。
如何实现文件上传?
通过表单提交数据的方法有两种,一种是GET 方法,另一种是 POST方法,前者通常用于提交少量的数据,而在上传文件或大量数据时,应用POST 方法。
当以GET方式发送表单时,发送的HTTP请求没有request-body部分,所以不需要指定enctype标签属性。GET方式只提交表单域中的数据,action标签属性中如果存在?子句,GET方式将不予处理。如下面的表单:
-
<form action="checkUser.html?opt=xxx" method="GET"> <input type="text" name="username" value="yyy"/> <input type="text" name="age" value="zzz"/> <input type="submit" value="submit"/> </form>
注:以GET方式提交表单时,每个表单域的NAME与VALUE要以URL的方式提交,所以每个表单域的NAME与VALUE均要进行URL Encoding处理。这个操作通常是由用户端浏览器完成的。
-
<form action="checkUser.html" method="GET"> <input type="hidden" name="opt" value="中文"/> <input type="text" name="username" value="yyy"/> <input type="text" name="age" value="zzz"/> <input type="submit" value="submit"/> </form>
当以POST方式发送表单时,表单域中的数据将作为request-body提交,action标签属性中的?子句将在request-line中得以保留。
-
<form action="checkUser.html?opt=xxx" method="POST"> <input type="text" name="username" value="yyy"/> <input type="text" name="age" value="zzz"/> <input type="submit" value="submit"/> </form>
注:以POST方式提交表单时,action标签属性的值必须是已经进行了URL Encoding处理之后的值,用户端浏览器不会自动处理URL中的非法字符。如:
-
<form action="checkUser.html?opt=%E4%B8%AD%E6%96%87" method="POST"> <input type="text" name="username" value="yyy"/> <input type="text" name="age" value="zzz"/> <input type="submit" value="submit"/> </form>
PHP一句话木马是什么?
一句话木马就是只需要一行代码的木马,短短一行代码,就能做到和大马相当的功能。为了绕过WAF的检测,一句话木马出现了无数中变形,但本质是不变的:木马的函数执行了我们发送的命令。执行过程如下:
我们可以通过GET 、POST 、COOKIE这三种方式向一个网站提交数据,一句话木马用$_GET[' ']、$_POST[' ']、$_COOKIE[' '] 接收我们传递的数据,并把接收的数据传递给一句话木马中执行命令的函数,进而执行命令。所以看到的经典一句话木马大多都是只有两个部分,一个是可以执行代码的函数部分,一个是接收数据的部分。
例如:<?php eval(@$_POST['a']); ?>
其中eval就是执行命令的函数,$_POST[‘a’]就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。这便是一句话木马的强大之处。因为木马是接收post请求中 “a” 的数据( $_POST[‘a’]),所以我们必须以post方法发送数据并且将我们要执行的代码赋值给“a”。如果把木马中的post替换成get,那么就需要以GET方法发送“a”,。
蚁剑如何使用?
一、蚁剑连接木马
1.根据服务器地址在根目录下创建文件,文件内容是一句话木马,设置连接密码
2.右键点击添加数据,URL地址填写http://服务器地址/之前创建的文件,连接密码是连接木马传递的参数,就是以POST方式传递的参数,编码器和解码器可以任意选择,被waf查杀时,可以选择另外的编码器和解码器
3.点击测试连接可以查看是否连接成功,点击添加就可查看文件并进行增删查改。
二、蚁剑设置代理
1.点击设置,点击代理设置,代理服务器与端口和bp上填写一样
2.配置正确点击测试连接就可以进行抓包
Misc
什么是隐写?
隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除了指定的接收者之外的任何人知晓信息的传递事件或者信息的内容。
隐写的载体可以是什么?
可以是图像、视频、文件、音频、文本、协议(TCP/IP网络协议被作为信息隐藏载体,秘密信息被隐藏在TCP/IP数据包头中)
图片隐写有什么手段?
1.LSB隐写
2.图片属性
3.txt文本文件中(用记事本打开)
4.用010Editor打开,错误的文件头或隐藏的特殊编码
5.图片尺寸错误
6.不同的颜色通道
7.图片内部有隐藏的文件
可能用到什么工具(strings? 010Editor? StegSolve?)?
1.010Editor、Winhex:16进制编辑器。
2.binwalk:识别嵌入固件镜像内的文件和代码。
3.Stegsolve:支持使用不同方式解除图像隐写。
4.ARCHPR、Ziperello:解密压缩包。
5.base64、base58、URL解码、ASCII与特殊编码的互换等:解密编码。
6.记事本:txt文本文件查看。