- A+
前期准备:
拿到目标网站时,要先进行信息收集,目的是为了扩大目标范围。
可以看一下有哪些“C段”(即同网段不同IP),有哪些二级域名“旁站”(即同服务器的不同站点),这些都是你不可忽略的潜在目标。
武器:御剑,可以找C段,杀敌于无形。SubDomainsBrute,Layer子域名挖掘机,可以找二级域名。御剑也可以扫出网站的后台(之后我们会用到)。
接下来,判断可能存在的漏洞,这一点主观经验很重要。
服务器版本,可以通过站长平台,AWVS,或者是网页内F12 network 进行查询。
有哪些中间件,这些中间件可能存在漏洞,往往容易被人们忽视。
开放哪些端口,以获知开启的相关服务。
当你向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,否则,就表示对方可能未开启此项服务。即使你向相应的端口发出请求,对方也不会应答,利用这个原理,我们可以看到对方开着哪些端口,根据与之对应的服务,采取相应的方法。
比如开放21端口,ftp识别及弱口令尝试爆破;开放23端口,telnet识别及弱口令尝试爆破;1433端口Mssql识别,3306端口MySQL识别等都可以尝试弱口令爆破;6379端口redis漏洞的未授权访问;还有令人印象深刻的“永恒之蓝”,就是由于一些用户缺乏安全意识,没有打安全补丁,老旧机型开放445远程连接端口导致,使用metasploit可以尝试用ms17_010尝试利用。
这里拿到目标网站,首先手工模拟蜘蛛爬行的方法,用上面提到的方法,尽快进行收集,拿到可利用有价值的信息,在看网页的过程中重点关注网站的输入框。以及判断输入后页面返回情况。看是否存在SQL注入或是xss漏洞之类的漏洞。
经过简单的手工测试,可以将我们找到的SQL注入的疑似注入点,想以注入为突破口,接着放到sqlmap中进行测试,这里展示一次成功测试案例。
比如,当时我测试可疑注入点:
输入以上命令,目的是得知数据库版本等相关信息。(与之前信息收集的结果基本一致)
我们会发现这个站使用的是MYSQL数据库,同时爆出的还有以下相关信息。
web server operating system: Windows
web application technology: PHP 5.2.6, ASP.NET
back-end DBMS: MySQL 5.0
特别是数据库名:
[*] information_schema
[*] **_sydata
下一步,我们尝试报一下数据库的表:
我们会发现,information_schema **_sydata 这两个数据库的表名被成功报了出来。
接下来,我尝试报目标数据库目标表名的数据(列名),比如我们关注的admin表的数据。
我们看到以下列名:
这时我们关注LoginName里面的内容,继续报;
最后结果:
这个admin的就是管理员的用户名,后面的密码是用MD5加密的,用网上常用的MD5解密工具可以进行解密。这样,就拿到了管理员的用户名密码了。
最后结合之前信息收集到的后台URL,用管理员用户名密码正常登录,就可以进入后台,一般这样网站的后台安全设置更加薄弱,接下来就看后台有什么漏洞,看能否上传“一句话木马”,getshell啦。