Day_1

打印 上一主题 下一主题

主题 559|帖子 559|积分 1677

第一天

7.8
本日我们的重要研究对象是创建靶机DVWA的过程,以及关于Command Injection毛病的基本原理,使用的是Windows11系统。
0x00 创建DVWA靶机的踩坑过程
1. 注意一开始百度到的材料大部分正确,先下载PHPstudy,次序安装,(小皮面板最后安装的时自定义安装在D盘),然后下载DVWA的压缩包,这里放一个帖子可以参考,现找也行;
之后就是遇到标红的题目如何办理,大多数情况是只必要根据DVWA靶机创建页面的提示更改php.ini(php文件中)即可,但是如果遇到类似关于 MySQL/MariaDB ,同时体现该用户无法访问此数据库的时候,就不能只依靠最初root数据库与用户名,在config.inc.php文件中改变用户名、用户密码、以及KEY的同时,注意PHP study上创建新的数据库,同时确保数据库名与用户名的相互统一。
2. 确保下载的压缩包中内容齐备,确保每个题目,low,medium,high,impossible等版本的PHP文件的齐备。
3. 遇到输出乱码题目,可以将相应的输出由“utf-8”改为“gbk”。
具体流程在配套的PDF文件中
0x01 Command Injection重要观察内容
重要分为low,medium,high三种难度,基本都很简单:low-level下源码没有任何的过滤情况;medium-level下源码只过滤了“&&”(以及Unix系统下的“;”);high-level源码过滤较多,但仍可以通过“|”进行输入
重点
1. 因为源码中的shell_exec(),是一种通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回的函数,因此外部输入跟命令行没有区别,会使php程序陷入危险的环境中。
2. 关于命令连接符“&&” “||” “|” “&” 的应用
a&&b :代表首先执行前者命令a再执行后命令b,但是条件条件是命令a执行正确才会执行命令b,在a执行失败的情况下不会执行b命令。以是又被称为短路运算符。
前面的指令执行正确,后面的指令才气继续执行
a&b :代表首先执行命令a再执行命令b,如果a执行失败,还是会继续执行命令b。也就是说命令b的执行不会受到命令a的干扰。
简单拼接,前后的指令互不影响
a||b :代表首先执行a命令再执行b命令,如果a命令执行成功,就不会执行b命令,相反,如果a命令执行不成功,就会执行b命令。
只有前面的指令执行失败,后面的指令才可以执行
a|b :代表首先执行a命令,再执行b命令,不管a命令成功与否,都会去执行b命令。
第一条失败仍会执行第二条,a的输出作为b的输入
*可以参考文章
3. 关于impossible情况下的源码安全的缘故原由
源码如下:
[code][/code]源码安全性高的缘故原由是接纳了几个更为严格的函数规范输入的形式:
stripslashes() :删除反斜杠,便于制止Linux系统通过反斜杠进行转义。
explode() :将输入打散,分成差别的数字。
is_numeric :用来判断分成差别份的数组是否是全为数字。
由此严格的限制输入必须是:数字.数字.数字.数字
重点总结:命令连接符的功能

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

星球的眼睛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表