bugku web 系列题目思路总结(一)

bugku web 系列题目,仅作为自身答题积累,包含题目关键步骤,并没有包含答案,只包含前三分之一。
希望自己能坚持刷下去。加油。
bugku post
可利用脚本为链接传输post数据

import requestss = requests.Session() r = s.get("http://123.206.87.240:8002/post/") values = {'what':'flag'} r = s.post("http://123.206.87.240:8002/post/",values) print(r.text)

bugku 矛盾
http://123.206.87.240:8002/get/index1.php
is_numeric()函数检验变量是否为数字或数字字符串。
构造num=1=1。实现num==1且num不为数字。
bugku web3
http://123.206.87.240:8002/web3/
弹窗忽略,直接看源代码。
发现K E Y { J 2 s a 4 2 a h J K - H S 1 1 I I I }
这里做积累。ansi为各国自用编码单字节,unicode为万国码四字节包含全部符号。utf系列为变长码可以调整为1-4字节。
上面的代码为unicode编码.翻译后为flag
bugku 域名解析
修改windows/system32/drivers/etc/host文件(管理员身份打开)
末尾添加123.206.87.240 flag.baidu.com。即可修改本地dns,访问域名即可获得答案
bugku 你必须让它停下来
http://123.206.87.240:8002/web12/
其他答案大多数为burp抓包,然后发送到repeat点go一个一个看,直到出现flag。
有另一个思路为页面禁用js从而使网页停止刷新。(实际为myrefresh函数问题)但没有成功。
补:禁用js实际上不是标准答案,flag是随着页面刷新而出现的,禁用js则会让flag无法出现。
bugku 本地包含
http://123.206.87.240:8003/
涉及的php函数:
$_request可以获取post和get提交的数据
eval() 把字符串按照php代码计算,分号结尾
例如:eval(“echo’hello’; echo’ world’; ”);
var_dump输出变量相关信息。
例如:var_dump(“string”); -> string(6) “string”
核心思路
1.利用eval函数读取flag.php文件。print_r(file("./flag.php"));
2.闭合var_dump函数,1)"; 分号分割eval函数语句。
组合可得答案。
eval函数有很大的注入风险。应进行输入检测,比如过滤 (),; ",等符号
bugku 变量1
$$a为引用变量,引用$a的值。
preg_match为正则表达式, \w 为数字字母和下划线。
所以直接构造变量会被正则表达式拦截,所以考虑到使用GLOBALS全局变量。
args=GLOBALS
可得答案。
bugku web5
http://123.206.87.240:8002/web5/
这个老相识了,之前见过,查看网页源代码得到特别长的括号组成的字符串
题目中也给过提示,这是一种特殊的加密方式,jsfuck。
利用 http://codertab.com/JsUnFuck .网站进行解码。直接获得答案。
最后注意题目多此一举需要输入大写。
bugku 头等舱
http://123.206.87.240:9009/hd.php
查看网页源代码没有发现有价值的,
题目名字为头等舱 分析可能是和信息头有关,发现server 为nginx。
查询发现,nginx往往存在路径解析漏洞。
比如:正常访问test.jpg无法访问,若改地址为test.jpg/1.php。则会返回test.jpg。
因为nginx把它当做php文件交给后台处理,而后1.php为不存在的文件,被自动删去,则返回图片。
以上是思路过程,但是方向不对。
实际上是直接查询response信息头,而我忽略了其中已经包含了flag。呵呵
bugku 网站被黑
http://123.206.87.240:8002/webshell
第一次经历需要用漏洞扫描工具的,记录一下,借鉴其他答案。
先用御剑扫描,得到隐藏网页shell.php。需要输入密码。
使用burpsuite进行拦截,爆破。使用自带的password字典。得到密码
bugku 管理员系统
http://123.206.31.85:1003/
随便填值,发现ip禁止访问。
涉及到服务器如何知道客户ip:
request.remote_ip方式只会获得前一个ip地址,有可能会被反向代理,正向代理混淆。
x-forwarded-for xff来自客户端所流经的代理服务器的链路路程。(匿名代理除外)
x-real-if 会被正向代理取代。只有在一级代理是两者等效。
关于X-Forwarded-For伪造及防御 https://www.cnblogs.com/drkang/p/8619810.html
本题运用burpsuite抓包,在header位置加入x-forwarded-for:127.0.0.1。
在源码末尾看到,应为base64编码。解码得到test123应该是密码。
再用Burpsuite发包。可得答案。
【bugku web 系列题目思路总结(一)】信息包传输路线。
Created with Rapha?l 2.2.0 客户端 正向代理 透明代理 服务器反向代理 Web服务器

    推荐阅读