探索web世界——任务三
任务内容
1.学习windows和Linux命令;
2.完成dvwa的第二个模块command execution(命令注入);
3.继续学习php(重点关注数据类型和php弱类型)
4.巩固练习:完成攻防世界web新手练习区的command_execution和simple_php;Jarvis OJ web的localhost和admin
一、学习Windows和Linux命令
Windows命令
- 首先网上查找了一些资料,收集到一些关于cd命令的例子:
- 创建目录:md 目录名(文件名)
- 删除目录:rd 目录名(文件名)
- 查看本机ip: ipconfig
- 清空屏幕:cls
- 查看帮助文档:help
- 查看系统当前使用情况:netstat -ano
- 查找进程:tasklist |findstr “进程id号”
- 进入某个目录:“D:”是进入d盘,“F:”是进入f盘
- 显示当前目录:cd
- 查看当前目录下的文件:dir
- 显示当前path变量的值:path
- 显示当前windows系统的版本号:ver
- 弹框显示当前windows系统信息:winver
- 显示当前分区的卷标:vol
- 显示当前分区的卷标,同时提示输入新卷标:label
- 显示或设置当前时间:time
- 显示或设置当前日期:data
- 运行某程序或命令:start
- 退出当前cmd窗口:exit
- 暂停批处理程序,并显示出:请按任意键继续…:pause
- 打开资源管理器:explorer
- 打开资源注册表:regedit
- 屏幕讲述人:narrator
- 任务管理器:taskmgr
- SQL SERVER客户端网络实用程序:cliconfg
- 剪贴板查看器:clipbrd
- 打开记事本:notepad
- 垃圾整理:cleanmagr
- 启动计算器:calc
- 写字板:write
- 查看有哪些用户:net user
关于Windows的命令太多了,这里有几篇比较全面的文章可以参考:链接一链接二链接三
目前不是很清楚以后经常用的到得到有哪些类型的,以后多用就能熟悉了
Linux命令
- pwd//显示当前目录
- cd//改变所在目录
- grep//在文件中查找某字符
- touch//创建文件
- rm//删除文件
- vi//编辑文件
- ls//查看目录下的内容
- cat//显示文件的内容
- cp//复制文件
- mv//移动文件
- rmdir//删除目录
- mount//挂载文件系统
- umount//卸载已挂载上的文件系统
- df//检查各个硬盘分区和已挂上来的文件系统的磁盘空间
- du//查看文件目录和大小
- fsck//主要是检查和修复Linux文件系统
- shutdown//正常关机
- reboot//重启计算机
- ps//查看目前程序执行的情况
- top//查看目前程序执行的情景和内存使用的情况
- kill//终止一个进程
- data//更改或查看目前日期
- shutdown-r//关机后重启
- chmod//用来改变权限
- useradd//用来增加用户
- su//用来修改用户
- man//查询和节是一个命令的使用方法,以及这个命令的说明事项
- locate//定位文件和目录
- whatis//寻找某个命令的含义
- head//查看文件的开头部分
- tail//查看文件结尾的10行
- less//是一个分页工具,允许一页一页的查看信息(允许使用箭头来前后移动)
- more//是一个分页工具,允许一页一页的查看信息(使用空格和B键前后前后移动)
- ftp//传送文件
- bye//结束连线并结束程序
- ping//检测主机
- telnet//远端登录
- netstat//显示网络状态
- echo//显示一字串
- clear//清除显示器
- lpd//查看在打印队列中等待的作业
- password//修改密码
- lpr//打印
- lprm//取消打印队列中的作业
附上大佬链接一篇Linux常用命令大全
#完成Command Execution
-解决乱码问题,在DVWA的目录下,找到一个文件,修改里面的内容。 大佬一
完成DVWA中Command Execution 模块
命令注入攻击的常见模式为:仅仅需要输入数据的场合,却伴随着数据同时输入了恶意代码,而装载数据的系统对此并未设计良好的过滤过程,导致恶意代码也一并执行,最终导致信息泄露或者正常数据的破坏。
PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一,国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。
源码分析
Low(低)级别
<?php
if( isset( $_POST[ 'Submit' ] ) ) {
// Get input
$target = $_REQUEST[ 'ip' ];
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping -c 4 ' . $target );
}
// Feedback for the end user
echo "<pre>{$cmd}</pre>";
}
?>
相关函数介绍:
- stristr(string,search,before_search)
stristr函数搜索字符串在另一字符串中的第一次出现,返回字符串的剩余部分(从匹配点),如果未找到所搜索的字符串,则返回 FALSE。参数string规定被搜索的字符串,参数search规定要搜索的字符串(如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符),可选参数before_true为布尔型,默认为“fa lse” ,如果设置为 “true”,函数将返回 search 参数第一次出现之前的字符串部分。
- php_uname(mode)
这个函数会返回运行php的操作系统的相关描述,参数mode可取值
”a” (此为默认,包含序列”s