二十一、手动漏洞挖掘:(3)命令执行

目录
1.漏洞挖掘原则
2.漏洞的本质
3.举例

1、漏洞挖掘原则:

  • 所有变量:所有变量/提交的数据都要尝试
  • 所有头:cookie的变量
  • 逐个变量删除:筛选出服务器对哪些变量进行处理

2、漏洞的本质:

  • 数据和指令的混淆(服务端对输入数据过滤不严格,对本来输入的数据却输入了指令,导致命令被执行)
  • 对用户输入信息过来不严判断失误,误将指令当数据

3、举例

下面是DVWA中命令执行的漏洞,输入框中需要输入的是IP,即应用系统发出ping指令,ping某一台主机:


命令执行

上面的命令是怎么执行的呢?是程序自己写的程序,编写一个ping指令or通过调用本机操作系统去发出ping,可以测试一下:

ping测试

发现它发送了3个ping包,按照系统命令猜测,如果在执行一条‘ls’命令,是否能一起被执行呢?

ls命令被执行

由此可见,此应用程序是按照调用系统的ping命令来执行的。linux中,两条或者多条命令执行,可以使用的连接符是“ ; && | || &”,尝试下其他字符:

&连接

点击右下角的“View Source”,可以查看源代码,看一下为什么能够被执行,原因是没有进行任何的过滤

low security源代码

将security安全级别调整为“中”,使用“;”就不能执行ls了,观察源代码,它将“&& ;”都被转成了空字符,但是|、||等没有被过滤

medium security源代码

将security安全级别调整为“高”,发现对IP地址进行了严格的限制,只能是以.分隔的4个数字。其中stripslashes函数已经对$target做了一次字符消毒(去掉转义后的反斜杠)


high security
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,239评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,594评论 9 467
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,992评论 19 139
  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    f675b1a02698阅读 5,380评论 0 11
  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 2,427评论 0 24