打点漏洞选择
首先,清楚web打点的目的,是为了获取目标网站权限。简单来说,就是为了拿shell。
在漏洞选择上,我们可以放弃一些以获取信息为目的的漏洞。例如:反射型xss,越权,逻辑支付等漏洞。
比较常见,也是所有人在学习渗透基础时候都会学的能拿到权限的漏洞,有两个:
SQL注入。
文件上传。
SQL注入漏洞有更为详细和具体的分类,这里不做具体说明;文件上传漏洞在一般情况下,需要和其他漏洞进行配合,以组合拳的形式获取网站的权限,最常见的与文件上传漏洞配合的有文件包含漏洞,解析漏洞。
明确了打点需要使用的漏洞之后,接下来就针对这两个漏洞在web打点方面的作用和使用方法进行一个总结。
SQL注入漏洞
简单介绍一些sql注入漏洞,漏洞存在的原因是因为程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL漏洞因为参数的不同,有数字型和字符型两种。因为返回内容不同,又可以分为显注和盲注,其中还有更小的分类,这个在sql注入的文章里有描写,感兴趣的朋友可以自己去看。
在web打点中,使用sql注入漏洞的好处是,首先对于这个漏洞,有很多已经成型的工具,或者批量化的扫描利用工具,例如:sqlmap、超级sql注入工具。在这些工具的帮助下,能极大的减少我们的工作量。
其次,sql注入是能直接修改数据库中的数据,一个SQL注入漏洞,就有可能让我们拿下一个网站的权限,例如sqlmap的–os-shell;或者是into outfile写入一句话木马,再或者通过查询管理员账号密码的形式进入后台,从后台上传点使用文件上传漏洞上传一句话木马。
寻找注入点其实也并不是一个困难的事,例如说,在Url中,看到了类似于?id=,就可以直接利用sqlmap进行尝试。或者是一些跟数据库有交互的搜索框,也可以在发送请求之后,抓取数据包,利用工具进行注入检测。再或者是登录页面,因为一个大型的网站,用户名和密码的存储一般都是放在数据库中,而我们之前的操作数据,也会存放在数据库中,我们输入的账号密码,可以当成提取这些数据的钥匙。这也是一个和数据库交互的点,也可以直接利用sqlmap进行检测。
文件上传漏洞
文件上传漏洞也是一个通过上传大型木马直接获取网站权限甚至服务器权限的漏洞。简单介绍一下文件上传漏洞:一些web应用程序中允许上传图片,文本或者其他资源到指定的位置。 文件上传漏洞就是利用网页代码中的文件上传路径变量过滤不严将可执行的文件上传到一个到服务器中,再通过URL去访问以执行恶意代码。
这里可以关注一下这个描述。
【将可执行的文件上传到服务器中】
在我们的认知中,可执行文件一般是功能强大的脚本文件,例如我们常说的大马,一句话等都是可执行文件。
这也是就是说,如果找到一个文件上传漏洞,我们可操作点会变多,同样的,获得的权限也会更大。
因为在某些服务器上,可能挂在的并不只是一个网站,利用文件上传漏洞,等于是将可执行的木马文件上传到了服务器中,如果成功执行,就可以直接获取整个服务器的权限,简单来说,如果一个SQL注入可以获取一个网站权限的话,那么一个文件上传漏洞,可以获取至少一个网站权限。
对比与玩法花样比较多的SQL注入漏洞,文件上传漏洞模式很简单,存在的地方也是一眼就可以看出的。
首先,有些网站为了个性化处理,会允许用户自己上传头像,上传头像的点,就是一个可能存在文件上传漏洞的点【上传点】。其次,有些编辑器,为了文章的可读性,会允许编写文章的坐着自主添加一些图片,这也是一个可能存在文件上传的位置。再比如说,有的网站后台,会因为网站业务需要,存在上传点。
上传点存在的位置不多样,不代表这个漏洞找起来困难,或者说利用价值没有SQL注入高。恰恰相反,哪怕是使用SQL注入获取了网站权限,为了扩大战果,也会有比较多的人会选择使用文件上传漏洞尝试获取网站所在服务器的权限。
当然,打点中使用到的技巧和常用漏洞还有类似于st2这样的反序列化漏洞,邮件钓鱼,社工等方法。
其他方法,我会在web打点(技巧篇)和web打点(总结篇)中进行详细描述以及实际演示。
未完待续….