(转至t00ls)【渗透基础考核贴】史上最牛逼的答案原创与整理。

(转至t00ls)【渗透基础考核贴】史上最牛逼的答案原创与整理。

前言

一大早就见得如此集思广益的帖子,忍不住GET了一下。总结的还行,不过貌似少了xss命令注入

原文转至t00ls

link:https://www.t00ls.net/thread-35461-1-1.html


内容原文:

因为该贴作者是我最崇拜的人渗透专家之一,他在我学习的渗透之路上有决定性的帮助,本着对其的崇拜和对于自我知识的整理,更重要的是希望帮助到更多的朋友,让更多的朋友不再迷茫,特地写了这个帖子,写贴过程中,因为要配图,结果点击高级模式的时候文章全没了,所以又重新写了一遍,帖子名字起的有些轻狂,只为希望有更多的人来指正错误。最后,感谢各位的支持,拜谢各位。

一.【拿到一个待检测的站,你觉得应该先做什么?】

答: 首先第一件事就是进行环境探测,主要是四个方面点,又称:四大件

1. 服务器探测
2. 脚本语言探测
3. 数据库探测
4. 搭建环境探测

二.【利用注入点可以干什么?】

答:

  • 1: 入侵的增删改查这里主要应用于查:查他的各种表,各种字段,尤其较为敏感的表,如管理员表,管理员密码表.获得这些信息之后探测到后台可以有机会登录管理.

  • 2: 通过注入点判断什么数据库类型具体方法↓(这个功能也是刚刚整理这个答案的时候才发现的转自myhack58)
SQLSERVER:
ID=1 and (select count (*) from sysobjects)>0 返回正常
ID=1 and (select count (*) from msysobjects)>0返回异常
ID=1 and left(version(),1)=5%23  //红色字体也可能是4
ID=1 and exists(select id from sysobjects)
ID=1 and length(user)>0 
ID=1 CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)

ACCESS:
ID=1 and (select count (*) from sysobjects)>0 返回异常
ID=1 and (select count (*) from msysobjects)>0返回异常

MYSQL:
id=2 and version()>0 返回正常
id=2 and length(user())>0
id=2 CHAR(97, 110, 100, 32, 49, 61, 49)

ORACLE:
ID=1  and '1'||'1'='11  
ID=1  and 0<>(select count(*) from dual) 
ID=1 CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)

其他方法:

“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:

“--”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:

“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库

  • 3: 直接写shell 以下为转载内容,太长了,我直接就转载他的总结吧!有兴趣的朋友,可以直接搜索: 注入点拿shell

这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了。提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root。

三:【既然已经有了很好的注入工具,为什么还要学习手工注入?】

答:

  • 1: 注入工具很多时候很傻,比如我们有多个参数的情况下,有一个参数可能存在注入,比如: mod=forum&srchtxt=%CD%C6%BC%F6%D0%C5&formhash=99bcf8a3&searchsubmit=true&source=hotsearch

    srchtxt=存在注入

    但是他只会检测forum,这样就存在了明明有注入点,但是检测不出来的情况。

  • 2: 机器注入默认速度过快可能会被WAF(Web应用防护系统)、狗,所拦截,手动就比较好一些。另外手工注入可以使用多种编码绕过这些安全系统。↓为转载编发绕过注入方法
搜索型:
%' and 1=1 and '%'='                    %' and 1=2 and '%'='                             
%2525%2527%09and%091=1%23   二次编码,%09代替空格法  

四:【mysql的站注入,5.0以上和5.0以下有什么区别?】

答:

5.0以上的版本中存在information_schema表,而在information_schema表中详细的记录了所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。

会员补充:

websec_t00ls: 在进行 UDF提权的时候,版本5以下的,导出路径随意,介于(5.0 ~ 5.1)导出到系统目录,>5.1的时候导出到MySQL安装目录的 lib/plugin里面

五:【在渗透过程中,收集目标站注册人邮箱对我们有什么价值?】

答:

这里主要是应用于社工场景和字典场景如:

  • 1: 进行二次搜索,搜索到更多的管理员信息,进行多次加工组织成各种字典,在合适的时候进行各种爆破。
  • 2: 这个是我纯粹的个人经验,有一次我想要搞一个站,结果他安装了DNS,通过判断我认为该DSN是在DNSPOD这个服务商下面,后来通过他的邮箱作为账户,然后其他信息组合密码,进入DNSPOD官网直接把他的DNS给停了。

六:【目标站的某个DOC文档下载链接是http://www.test.com/down/2015/11.doc 你觉得此路径可能被利用吗,为什么?】

答:

这个答案我有一些茫然,我的认为是记录下这是一个文件地址路径,当我们上传一些自己的东西的时候,好找到我们上传到哪里了,以免出现了上传了文件找不到的尴尬.这里并不清楚是否是正确答案,等待各路英雄来聊一下。

会员补充:

sxdmsr:这种一看就是日期类型的命名规则,xxx.doc可能是 年月日时分秒+随机数组成的,有时候上传了shell,可以爆破这个文件名。

ph12h0n :明显可以猜出上传文件名的规律,遍历出很多私有文档。

七:【判断出网站的CMS对渗透有什么意义?】

答:

网上搜索下这个CMS有什么漏洞,看下是否可以直接利用。

会员补充:

Catchermana:不仅可以搜索已知漏洞,还可以进行源代码审计等

八:【一个成熟并且相对安全的CMS,渗透时扫目录的意义?】

答:

  • 1: 当管理员管理多个网站的时候会经常把备份文件直压缩到根目录,这个方法有人在贴吧里面说了,但是在 看到 他说之前,我们在进行操作的时候,我们的爆破组就成功的用这个方法拿到了对方网站的备份数据并且通过database.inc.php这个文件成功的拿到了一些敏感信息。所以这里作为我们自己的答案出现,同时感谢其他前辈在其他出处的回答.

  • 2: 目录下面可能存在子站,主站无法突破的时候,可以尝试子站突破.

  • 3: 极有可能存在一些敏感文件,这些文件中记录了一些敏感信息,曾经我们之前的公司为了安全把服务器密码设置的非常复杂,但是自己又记不住,就直接在网站根目录下面放了一个,FuWuQiMiMa.txt因为用的是linux系统,对大小写敏感,想着会是比较安全的,但是后来是被人成功日掉了。

  • 4: 有的管理员为了便于管理直接把phpmyadmin直接存放到目录下面,如:www.test.com/phpmyadmin

  • 5: robots.txt的利用:

    管理员为了防止自己的网站后台被谷歌黑客命令所查询到后台地址,所以会在该文件中设置蜘蛛拒绝访问

    如:Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录

    直接登录www.test.com/admin 就直接到后台地址了。

    有一些管理员开始变得更加聪明一些会隐藏的更深入一些,比如:Disallow: /admin/ 直接封掉这个目录的蜘蛛爬取,后面的目录就不写了。

    但是他的地址却不是直接的www.test.com/admin, 而是有可能还在admin的下面, 比如:www.test.com/admin/我是后台/我不是后台/我到底是不是后台/楼上的我怎么知道你们是不是后台

    这样的场景可以直接burp拿起,变量字段,扫他。

九:【请写出一种你最常见的网站语言+数据库+搭建平台+服务器系统的组合】

答:

php + mysql + apache + linux = LAMP

十:【IIS6.0平台搭建的网站可能是什么操作系统?】

答:

因为IIS6.0的版本比较老一些了,最常见的搭建是:

windowsever 2003
windowsever 2008 默认 IIS7.0
windowsever2012  默认 IIS8.0

十一:【mysql注入点,root权限。用工具对目标站直接写入一句话,需要哪些条件?】

答:

  • 物理路径
  • magic quotes gpc off

十二:【php+mysql的站,真的没可能后台配置插入一句话。连接数据库拿shell吗?真的没可能?】

答:

PHP CGI的漏洞,php某些选项默认开启时会导致php由后向前解析,造成解析漏洞。 对于这个漏洞的说法各有不同,有的说是IIS7.5解析漏洞 这里经过权威人士的指出 为PHP CGI

操作方法如下:

1.上传图马,记录地址
2.查看图马是否存在。
3. ./php查看是否得到解析 (此处应该为/.php 感谢会员ihope指正)
4.连接菜刀(或者自己编辑自己的菜刀环境)

配图如下↓

1.上传图马,记录地址

1

2.查看图马是否存在。

2

  1. ./php查看是否得到解析(此处应该为/.php 感谢会员ihope指正)

3

4.连接菜刀(或者自己编辑自己的菜刀环境)

4

十三:【某后台登录框有验证码,一定不可能爆破吗?为什么?】

答:

有关这个有好几个答案 burp suite绕过

1.验证码以cookie的形式出现可以用burp suite代理阶段的方法绕过

2.基于隐藏字段使用burp suite绕过:
    user=admin&password=admin888&S1=验证码&S2=验证码&Submit=+%B5%C7+%2C%BD+
    直接在 burp suite 修改
    user=admin&password=admin888&S1=1&S2=1&Submit=+%B5%C7+%2C%BD+

3.国内某组织做了一个可识别验证码的神器,我的同学已经成功操作,具体我没有操作,等待我操作过后再聊这个问题。

十四:【nginx的解析漏洞是什么?】

答:

Nginx < 0.8.03 空字节代码执行漏洞 影响版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37

Nginx 在图片中嵌入 PHP 代码然后通过访问

(图片一句话)

xxx.jpg%00.php

来执行其中的代码

这个和十二的答案有些雷同,这方面我有点懵逼,请求高手指正。

十五:【如何手工快速判断目标站是windows还是linux服务器?】

答:

Linux大小写敏感的问题可以迅速的判断。在Linux中www.test.com/Index.PHPindex.php会被认为是2个文件。

Windows不存在大小写敏感 www.test.com/Index.phpwww.test.com/index.php 是一个文件。

十六:【伪静态注入点:http://www.test.com/news?id_13.html 你觉得这个伪静态实际链接可能是什么?】

答:

这个是做的伪静态,他的贴点是直接取ID后面加.html来做成一个静态文件。他的ID值依旧是13,最有可能的组合便是:http://www.test.com/news?id=13

十七:【既然静态站点安全性较高,为什么这么多站不全用静态页面呢?】

答:

纯粹的静态页面修改东西太麻烦,因为静态页面不和数据库交互,如果要修改东西就需要1个个文件编辑。现在的网站内容都非常多,比如新浪一天诞生出来的页面就可能多达十几万,整个网站的内容甚至极有可能达到 兆亿。那修改起来.....

如果单页或者只有极少数的页面的情况下建议可以使用纯静态的方式来做,这样数据库也不要安装,没有数据库注入的方法直接失效,因为注入其实就是和数据库打交道。

十八:【php一句话中的 $_POST["pass"] 你觉得这个$_POST["pass"]会被杀吗?请说明原因】

答:

POST只是只是PHP的接受参数,单纯以为POST的提交方式来说是不会被杀,因为POST是最为正常的提交方式,如果安全软件是以POST为特征码查杀的话,那网站不剩下几个页面存在了。但如果涉及到eval 函数就不一定了,如: <?php @eval($_POST[value]);?>那么有安全软件的话基本会被杀掉。不信你建立个PHP文件,把代码放进去,360都分分钟教你做人。

十九:【为何一个mysql数据库的站,只有一个80端口开放?】

答:

有可能是在路由器或者防火墙做了内网端口映射,只映射了80端口。另外一种较小的可能是站库分离。

二十:【把你知道的所有注入类型写出来(如:数字型)】

答:

数字型
字符型
搜索型

二十一:【IIS7.5平台搭建的网站可能是什么操作系统】

答:

Windows Server 2008 
Windows Server 2008     提供了 IIS 7.0
Windows Server 2008 R2 提供了 IIS 7.5
Windows Server 2003 一般搭配的是IIS6.0,基于一般默认的搭载和较多的存在,Windows Server 2008最为可能。

二十二:【3389无法连接,可能是什么情况?】

答:

1.防护软件拦截了不安全的连接,比如安全狗,有一个功能,只有你制定的计算机名字可以连接到服务器,这里的计算机名字很多朋友以为是用户账户名,所以修改或者创建了一个用户名,结果悲剧了,连接不到了,其实这个是修改的计算机名字, 这个的方法有兴趣的朋友可以在网上找一下。
2.修改了端口,计算机可以连接断开65535个,随便修改一个不常用的端口,较为安全的是10000以后的,随便写个比如59418。
3.处于内网之中,这个可以用LCX远程连接,第一步就是先给 那台服务器传个LCX 然后你要有管理员的执行权限才行。
4.没有开放3389,与其说对方没有开3389端口,不如说对方没有开启终端服务,如果这样,当然无法进行远程桌面连接了。嗯悲剧了。没办法解决,自己画一个吧。
5.tcp/ip筛选限制登陆  只允许指定IP连接远程桌面,限制IP登录

二十三:【某新闻链接,通过and判断存在注入,但是order by 一直返回正常。此界面可能存在注入吗?为什么】

答:

因为管理员设置了 mysql的union前不能带order by , 但是order by是可以盲注的。 这种方式依赖数据库结果中必须存在一个已知存在不一样数值的列。有关这个方面的具思路可以搜索中关村在线order by语句的盲注思路的分享

二十四:【为什么xor 66>77 和xor 66>55也可以判断注入?】

答:

和 and 1=1 and 1=11 一个道理 等式or不等式 主要是查看是否可以 代入数据库查询

二十五:【如何突破注入时字符被转义?】

答:

关于这个答案我找了差不多半个小时始终没有一个合适的答案。

一般网上说的是2种说法:

1.宽字符注入
2.hex编码绕过

二十六:【已知目标站存在文件夹解析漏洞,那么上传1.asp/6/7/8/x.jpg 可以执行出脚本效果吗?】

答:

可以的,无论后面是多少个目录,只要在脚本的文件夹后面目录有一个可执行文件,就可以不断的往上面执行,一直执行到脚本文件。