前言
- 冬天来了
题目
1、[BSidesCF 2019]Kookie
-
虽然是很简单,但是有点难想。
-
只需在请求头中加上cookie发包请求就行。
cookie:username=admin
2、[CISCN2019 华北赛区 Day1 Web5]CyberPunk
-
首先可以通过首页的源代码中发现提示,然后有PHP伪协议可以读取源代码。

?file=php://filter/read=convert.base64-encode/resource=index.php -
可以得到所有的源代码,进行代码审计。 注意到两个部分。
-
第一点就是在提交订单时的
confirm.php,对输入的姓名电话地址几乎无过滤,虽然有一个黑名单,但没起到作用,匹配到黑名单后还会往下继续执行。 -
第二点就是在修改订单信息的
change.php,对于输入的地址有一个addslashes转义处理,这就导致输入的address变量在这里不可利用。 -
但是在执行修改sql语句时,还是有将原来的地址取出放入sql语句。
$address = addslashes($_POST["address"]); $sql = "update `user` set `address`='".$address."', `old_address`='".$row['address']."' where `user_id`=".$row['user_id']; -
也就是有一个利用漏洞,因为在提交订单时没有过滤,在提交订单时将payload放入地址,在修改订单信息时随便输入一个新地址,但是旧地址也在sql语句中执行。可以利用报错注入。
-
但是很重要一点,flag在哪,可以一步一步爆库爆表直到得到字段内容,没有flag。最终 flag 在
flag.txt。通过load_file函数来读取文件内容。 -
payload
1' where user_id=updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),1,20)),0x7e),1)# 1' where user_id=updatexml(1,concat(0x7e,(select substr(load_file('/flag.txt'),20,50)),0x7e),1)# -
一步一步来做的话,可能不算难,但有点麻烦。二次注入,不是什么新知识点,关键是代码审计知道利用点。
3、[RCTF2015]EasySQL
-
登录注册修改密码,盲猜就是二次注入。
-
在注册时,如果用户名中含双引号
"或者注释符\,在修改密码时,会引发报错,可以发现,sql语句为双引号闭合,并且可能存在报错注入。同时可以猜测后端sql语句的形式为update users set password='xxxx' where username="xxxx" and pwd='xxxx'

最低0.47元/天 解锁文章
2934

被折叠的 条评论
为什么被折叠?



