接9.27PHP相关
条件判断
if(条件){条件成立时执行的代码;}
if(条件){{条件成立时执行的代码;}}else{条件不成立时执行的代码;}
if elseif elseif else
switch
循环:
for(初始值,条件,增量){}循环
forecah()遍历数组
while循环
do while 循环
数组:在单个变量中存储多种类型的值,类型:数字型数组、关联型数组(键值对数组)、多维数组
$array=array(“1”,123,1.124,true)
$array=array(“k1”=>value1,”k2”=>value2)
$array=array(array(1,2,3),array(4,5,6),array(7,8,9))
数字型数组的下标是从0开始的,长度使用count()函数计算,遍历数组使用for/foreach计算,
关联型数组的下标是键,k1,k2,遍历数组使用for/foreach
打印数组用print_r()
数组的排序:
sort()升序
rsort()降序
asort()针对关联型数组的值,升序
ksort()针对关联型数组的键,升序
arsort()针对关联型数组的值,降序
krsort()针对关联型数组的键,降序
超(级)全局变量:
$GLOBALS //包含全部变量的全局组合数组
$_SERVER //包含请求头中的信息,用户的IP、用户UA、用户头信息等
$_REQUEST//包含用户提交的所有的数据(POST/GET/COOKIE等)
$_POST //包含用户POST方式发过来的数据
$_GET //包含用户GET方式发过来的数据
$_FILES //包含用户发送过来的文件对应的数据
$_ENV //包含服务端环境边量的数组
$_COOKIE //包含COOKIE中的数据
$_SESSION // 包含SESSION中的数据
Cobalt Strike简单使用
后渗透测试工具,基于java开发,适用于团队之间协同作战,简称“CS”
CS分为客户端和服务端,一般情况下我们称服务端为团队服务器,该工具具有社工(社会工程学攻击)功能,团队服务器可以帮助我们收集信息以及管理日记记录,linux中需要以root开启团队服务器,windows中 以管理员开启的团队服务器。
Linux: teamserver server_ip pwd (server_ip 为服务端ip)
Windows: teamserver.exe 服务端IP(一般为当前机器ip) 密码 (基本同上)
然后开启客户端:
Linux:./CobaltStrike 或者java -jar CobaltStrike.jar
Windows:双击CobaltStrike.exe或者java -jar CobaltStrike.jar
开启后输入IP、密码,进入CS客户端java -jar CobaltStrike.jar
设置监听器:在菜单栏中找到”Cobalt Strike”-->listeners,点击add添加监听
CS listener:(有许多种类)
比如windows/beacon dns/reverse dns txt
beacon是内置监听器,在目标主机中执行payload获得shell到CS中,其种类有dns/http/https/smb等类型;
foreign外部结合的监听器,一般和MSF联动,获取meterpreter(shell)到MSF中
生成木马病毒
菜单栏中 attacks-->packages-->多种生成种类病毒
1、HTML Application生成而已的HTA木马文件
2、MS Office Macro生成office宏病毒
3、Payload Generator生成各种语言版本的payload
4、USB/CD AutoPlay生成利用自动播放运行的木马文件
5、Windows Dropper捆绑器,能对文档进行捆绑
6、Windows Executable生成可执行exe木马
7、Windows Executable(s)生成无状态的可执行exe木马
我们选择6,设置好监听器和生成的木马的类型,得到exe木马,复制到虚拟机中运行,然后再CS客户端就能获得控制住的机器。
Cookie和session的比较:
1、cookie是存放在用户的浏览器中,是服务端通返回包中set-cookie来设置,cookie表示用户的浏览器和服务器之间的会话状态,登录成功之后方可获取cookie数据,该数据一般情况下具有时效性,失效之后需要用户重新登录。有了cookie数据之后,用户的每次请求都会带上cookie,服务端会验证该cookie的合法性和实效性,cookie的发送需要遵循浏览器的同源策略。
2、Session是存放在服务端的,表示用户和服务器之间的会话状态,session和cookie是一一对应的关系,服务器也需要记住每个哪个用户登录该站点,一般情况下session是以文件的形式保存在/tmp/目录中,形式为:sess_XXXXX。
只要cookie被修改过,服务器就会要求用户重新登录
有意思的常量(预定义常量 PHP)
__LINE__ 显示当前行号
__FILE__ 当前文件的路径以及文件名
__DIR__ 当前文件的路径
__FUNCTION__ 当前定义的函数名
__CLASS__ 当前类名
PHP函数:有参、无参
function FunctionName($value=’’) //函数名命名方法:驼峰命名法(组合词的每个单词的首字母大写)
调用函数时,函数名(),注意如果需要给参数,则在()输入参数,个数要满足其要求
需要在函数中有返回值,需要return
PHP面向对象
C面向过程;
C++ C# java php python等是面向对象的。
对象:对于某些事物的一只描述,代表整体上的一种概念,对现实世界的一种抽象,具有行为、形态、表示三种特性
面相对象中常用的概念:
类:对于某类事物的一种抽象,它包含事物的形态、行为等。
对象:是类的实例,人类(亚洲人对象)、狗类(二哈)
成员变量:对象的属性特征(二哈:外形像狼)
成员函数:对象的某种行为(二哈:拆家)
构造函数:
主要用于创建对象时初始化对象,为成员变量赋初始值,也就意味着砸new对象时用到该函数,该函数需要定义在类中
__construct(参数)
析构:__destruct(参数)
类的定义:
class ClassName{ 定义类的变量和函数}
创建对象:new对象,类的实例化,使用new
调用成员方法: ->
this表示当前的类,类中有变量和函数,要使用这些变量和函数,$this->变量名
$this ->函数名
继承:在PHP中可以使用extends继承一个类,不能继承多个(使用其他类中的变量和函数,这个类也叫做父类)
A( 1 2 3) class B extends A{ } , A是B的父类,B继承的A,B可以使用A中的变量和函数。B也叫做子类。
方法重写:覆盖,也就是说父类中方法不能满足自身的需要,重新定义方法
访问控制:对定义的类中的变量和方法进行访问控制,通过public/protected/private实现
Public: 公有的 在任何地方均可访问
Protected:受保护的,只能在父类、子类以及自身中去使用
Private:私有的,只能被其定义的类中访问
接口:指定类中必须是要你管哪些方法,这些类不需要具体去定义,使用interface去定义接口。
接口中只需要写清楚函数的名称以及参数即可,使用接口的时候需要使用关键词implements,注意:类中必须要实现所有的方法。类中可以实现多个接口
服务器接收用户发过来的数据的方法:
$_GET接收用户以GET方式发过来的数据
$_POST接收用户以POST方式发过来的数据
$_COOKIE接收用户的cookie
$_REQUEST接受用户发过来的数据(GET、POST)
htmlspecialchars()实体化编码
echo htmlspecialchars(“<script></script>”);//<script></script>gt;
is_array()判断参数是否是数组,如果是,则返回true
isset() 判断结果是否为空,如果是非空,则返回true
date(“Y/m/d”) 当天日期Y年m月d日
简易WEB服务:IIS apache nginx tomcat
php -S ip:port
python2 python -m SimpleHTTPServer 8080