因为实际渗透会遇到一个登入框摆在面前的情况比较多,所以我选择的目标多数也是某某系统登入界面。
我的测试逻辑一般是
1.弱口令+爆破+密码泄露查找
2.xss(比较少而且不是存储基本不收意思意思就好)+sql注入(稍微测下,比较少)
3.从js或者其他返回包中发现并且拼接url再测试(基本上就是拼出来什么测什么)
首先要找到对应系统我一般用fofa
查询语句为 “关键词” && org=“China Education and Research Network Center”
这边关键词我一般会先去edusrc找个修复率不是特别高的厂商然后用fofa语句查询
body=“技术支持:xxx(厂商名字)” 或者直接搜索 厂商名字(直接搜可以搜索出一些职校需要自己辨认)
像这样
body=“厂商名字” && org=“China Education and Research Network Center”
这里我们确定了目标,为了避嫌我全码了(此漏洞厂商修复了,仅用于技术研究)
1.搜索是否有相关的手册(手册里面可能会存在敏感信息或者管理员密码有利于我们下一步渗透)
大体上这么搜索就可以了,如果你想要更加细节一点,可以用搜索语句搜索
比较常用的谷歌语法我贴出来
Site:找到与指定网站有联系的URL。
filetype:搜索指定类型的文件。
intext:搜索网页正文内容中的指定字符。
inurl:搜索包含有特定字符的URL。
intitle:搜索网页标题中包含有特定字符的网页。
这里我没有找到泄露的手册,弱口令也进不去,那么就第二个思路xss+sql
初步来看可能存在注入的点有四个 学生登入+管理员登入+忘记密码+注册
测下来都没有,在忘记密码处发现一个暴露查询语句的地方,这个where=可控变量,感觉希望来了,一测下来不管怎么闭合都注入不成功,应该是写了过滤了,于是放弃,转而去下一个思路
我先测了一下学生账号的逻辑,因为学生账号是可以自己注册的
可注册完成一看不能登入不在时间内,我擦这可怎么搞。
我知道你很急,但是先别急,遇事不决先抓个包看看再说
这里看到返回包 返回了一串字符 我们可以大胆的猜测一下登入是否成功是按照返回值来决定的
问题来了,怎么去找到正确的返回值是什么
这里我推荐两种方法1.f12看源码+js 2.burp看看历史包
这里通过burp的历史返回包成功的找到了逻辑
这里js写了一个方法 validatelogintime() 在post提交数据的时候如果是“ok”就返回true
那么这里我们bp修改下包就成功进入了下一个界面
但是这里直接点击同意进入的话是没办法进入的,那再翻翻新的返回包
成功找到了一个url,我们拼接进入
此处出现了一个文件上传点,按钮是个flash文件,这里我下载了flash player也加载不了这个选项,不知道是哪里有问题,懂得师傅可以留言交流下
文件上传利用不了那么就直接测试个个参数的注入和xss(存储的话可以测试下)
进入了学生的后台xss+sql都被过滤了也没办法越权到管理员账户于是再去前台试试管理员账户
管理员账号是否存在会有提示,那么这里就可以使用burp爆破查看返回值的方法判断管理员账号是什么
得到管理员账户为admin
再来看看之前新的返回包有没有什么信息可以利用
我去,里面居然写了一条post提交逻辑,虽然登入管理员账户的返回包里面没有任何东西,但是手边也没有别的信息了
发包,改包,直接进入后台
挖逻辑的时候还是要耐心一点,学生登入后的返回包里居然有管理员的登入逻辑。
另外这个洞交了修复了,所有的信息都码了,仅技术研究。