bugku web wp
写在前面:
简单步骤不再复现,只是再复习一下知识点,可以挖深一点。
web2
F12
计算器
F12改html
$get $post
? & hackbar
矛盾
很多解法
1加一个符号就行了
web3
F12,发现一串密文,Unicode解码
域名解析
我们百度这个是什么意思
是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
我们知道我们的网址是192.xxx.xxx.xx这种形式,那为什么我们能用www.baidu.com呢,就是绑定了。
百度搜索,如何将域名解析到本机。
你必须让他停下来
抓包,多go几次就看到了、
本地包含
崩了
变量1
<?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){
die("args error!");
}
eval("var_dump($$args);");
}
?>
最后一句话的意思是打印出我们要的传进去的值作为变量名
大概意思是,
?args=1
那就打印 $1
?args=dqw
那就打印 $dqw
初步想法是传flag,但是不可能让你那么简单就拿到啊对吧。
这里是引用$GLOBALS
$GLOBALS — 引用全局作用域中可用的全部变量
说明
一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
WEB5
JSFUCK解码
丢到F12里面执行
头等舱
抓包
网站被黑
扫后台,抓包,**
管理员系统
这题很鬼,网页源代码的很下面有个base64加密的东西,解密是test123,然后uesr=admin,pass=test123还是错,说IP不行,那就加本地头,X-Forwarded-For=127.0.0.1通过
WEB4
看源代码很容易看懂,就一个escape加密。解密出来为一串函数
function checkSubmit() {
var a = document.getElementById("password");
if ("undefined" != typeof a) {
if ("67d709b2b54aa2aa648cf6e87a7114f1" == a.value)
return !0;
alert("Error");
a.focus();
return !1
}
}
document.getElementById("levelQuest").onsubmit = checkSubmit;
很简单了复制粘贴就好
flag在index里
伪协议读取源码
?file=php://filter/convert.base64-encode/resource=index.php
解码
输入密码查看flag
纯**
点击100w次
var clicks=0
$(function() {
$("#cookie")
.mousedown(function() {
$(this).width('350px').height('350px');
})
.mouseup(function() {
$(this).width('375px').height('375px');
clicks++;
$("#clickcount").text(clicks);
if(clicks >= 1000000){
var form = $('<form action="" method="post">' +
'<input type="text" name="clicks" value="' + clicks + '" hidden/>' +
'</form>');
$('body').append(form);
form.submit();
}
});
});
看到这个源码,有个mousedown和up,点击一下clicks加一,然后有个from表单,有一个hidden的post,可以通过post clicks的值改变clicks,那就hackbar
备份是个好习惯
看到备份,看到一串不知道是啥的东西长得像16进制但是转换不出来。
尝试index.php~和index.php.bak,存在bak,打开
<?php
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
看源码我们分析,
1、是有一个replace,会把key代替成后面的空白
2、md5相等
两个知识点,一个是绕过字符过滤,一个是md5的0E相等
空白用双写绕过,0E相等直接百度。
?kekeyy1=s878926199a&kekeyy2=s155964671a
成绩单
最简单的注入
测试发现是单引号注入
order by,table columns 再到字段
这里有一个奇怪的地方,就是order by 能回显四段,但是我怎么放都只能在最后一个地方回显
秋名山老司机
我觉得下面这个大佬的wp最好了
import requests
import re
url="http://123.206.87.240:8002/qiumingshan/"
r=requests.session()
text=r.get(url).text #将get到的数据以文本形式显示出来
cont=re.findall('<div>(.*?)</div>',text) #匹配出计算表达式,返回的是列表
cont="".join(cont) #列表转字符串,因为eval()接收的参数类型为string, bytes or code object
cont=cont[:-3] #删掉多余的字符
post=eval(cont) #eval()可以把字符串当做有效表达式进行计算
data={'value':post} #构造post数据
ans=r.post(url,data=data)
print(ans.text)
上一篇: 【贵美商城】制作购物车页面的地址选择
下一篇: bugku 里面的五个pwn题wp
推荐阅读
-
WEB端自适应尺寸的方法
-
ASP.NET Core Web API 最佳实践指南
-
基于 HTML5 Canvas 的 Web SCADA 组态电机控制面板
-
web在html中引用JavaScript代码的实现(小程序在xwml中实现)
-
带你使用Visual Studio 2019创建一个MVC Web应用
-
C# extract img url from web content then download the img
-
win2008 r2 web服务器IIS的安装与基本设置
-
使用JavaScript破解web
-
Web.py初探:安装与HelloWorld
-
单台服务器中利用Apache的VirtualHost如何搭建多个Web站点详解