bugku web部分 (带了标题)
[2,1]矛盾----------
is_numeric在php里面是 是数字的意思
这个啊,只要是不是纯数字也可以, 试了一下num=1*1 只要是一个字符串就行....不管是算式也好,一串什么其他也好....
[2,2]web3----------
【F12是看网页源代码/审查元素(可以编辑)】
【Ctrl+u】直接强制查看源代码
发现最后有蹊跷 注释掉的 这个常见的【】<!--KEY{J2sa42ahJK-HS11III}-->
这个是 unicode码。。。。。
要转换成人看得懂的ascii码。。。。这文件说的没错。。。是你自己太小白了没理解。。。。
站长工具 【编码转换】:http://tool.chinaz.com/Tools/unicode.aspx
也可以直接回车。。。?
[2,3]域名及解析----------
参考:http://www.cnblogs.com/lxz-1263030049/p/9298704.html
windows下修改的文件为:
这样就可以了,我们直接访问:http://flag.bugku.com/
就会得到答案
补课:
域名解析:
域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
hosts文件:
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
需要注意的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。
---------------------补课来自 h0ryit 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/w0ryitang/article/details/80112185?utm_source=copy
[2,4]你必须让他停下
涉及到一个软件 burpsuite 进行 抓包改包,查询漏洞,暴力破解
配置浏览器代理?抓页面? send To repeater?
然后再go 点几下就有回应了
或者 直接禁用js 在谷歌浏览器的选项里面禁止所有页面xx
路径:【
设置---高级----内容设置
然而禁止了根本不行啊。。
--来源都是四处copy 并非原创 个人学习用
第三行开始
[本地包含]
include "flag.php";
$a = @$_REQUEST['hello'];
1._REQUEST[]函数: 它对get/Post都可以接受
flag在那个php文件中,但是读不到,是本地的,要想办法[爆破]
(1)可以用GET或POST方法为hello赋值进而为$a赋值
(2)程序并未对hello的输入进行判断过滤
(3)eval函数中执行的命令进而可以被$a的值所决定
2.var_dump()是PHP中的调试函数,可以用var_dump打印所有的对象,查看对象内部的数据结构
3.第二句话要获得hello的值,由于hello为’hello’,所以无论在url栏中对hello赋任何值,都会全盘接受,其中var_dump()是将a打印到界面中,在根据eval函数的特性(计算后面括号中的表达式)
构造如下:http://120.24.86.145:8003/?hello=1);print_r(file("./flag.php"));%23
使原文语句为
eval(“var_dump(1);print_r(file(“./flag.php”))”)
4.(不懂诶..)这个%23是url编码 # %23
之前有学过那个应该是?hello=1
但是后面咋又那个);是啥,....
print_r(file("flag.php"));%23 (最后加个#,完结有分号
5.还可以:?hello=file_get_contents('flag.php')
再f12 就可以
file_get_contents() 函数把整个文件读入一个字符串中。
感觉只要 hello有了值,就可以继续往后xxx,然后我们只需要把那个show的显示出来,,调用一个函数
或者:http://120.24.86.145:8003/index.php?hello=1);show_source(%27flag.php%27);var_dump(3
eval() 存在注入漏洞 使用hello构造payload即可
[跳过](php臣妾实在是完全不懂啊...)
[web5]
这个查看源代码,发现了jother编码,直接放到浏览器(先f12)然后再console一下就好了... (console是控制台的意思)
对jother只是初步了解,它也是一种编码方式,不过有点另类,其中的基础不是0、1,而是特定的字符:“+”、“!”、“(”、“)”、“[”、“]”、“{”、“}",服务于javascript语言,编码出精简的匿名函数对与字符串如“ctf{whatfk}”字符串
[头等舱]
什么也没有...
html里也没有
burpsuite抓包
【补充:抓包肯定是头部!!要在burp里面好好找(问了zj)】
第四行
[网站被黑]
经常遇到,加了Index.php发现是php 用御剑跑一下...发现还有一个后台界面.....
pass 密码不知道
直接burp爆破,simple 字典 passwords/
short words......
PS:webshell一般大多数人用的都是英文密码或者简单的弱密码,一般的字典都可以破解开的。
(>>?????)
【这里重做的时候发现 simple words和那个passwords不一样。。。。】
【要多试验几次。。。。 】
【这个也还真的是!!!!只有多试验多试错 看题解想出来的和自己 就知道的 还是不一样鸭】
分享链接:
多得是,你不知道的事(不要看表面现象):https://www.jianshu.com/p/9d1df93b9b2e?utm_campaign=maleskine&utm_content=note&utm_medium=pc_all_hots&utm_source=recommendation
如何叠衣服:https://www.sohu.com/a/198526273_365401
[4,2]
[管理员系统]
【notice】F12按下查看元素 和直接显示出来的源代码不一样。。。
F12之后发现了一小段源代码 (base 64编码)
唔... 这样就像是 在解密游戏
只有密码test123 用户名admin(本地....)的时候改一个包
【burp使用】[星号]
只有在代理服务器里面把包改掉 改成本地截留
自己拦下来之后 .....send to repeater 改包把包改掉 然后继续GO发出去
就可以发送修改过的包了 是不是很强
参考地址: https://blog.csdn.net/jinzhichaoshuiping/article/details/47324955
而且可以直接把网页上搞过来的东西继续改
简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP
那么我们伪装成本地登录就可以了 把包的xff头设置为本地 127.0.0.1
注意头部这个东西是 X-Forwarded-For
【改完之后记得要把代理设置改回来!!!,,,】
(下面黑色为转载)
dGVzdDEyMw== 很明显是Base64编码格式
X-Forwarded-For
X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。
===================
网页上都是明码传输的
连人家的wifi 真的 就完全可以截留你输入的xxx密码
马上就能二次支付.....
http: // https:// (s)就有了加密证书 没错的
老师: 你们交的这些作业都是小玩意儿 到企业里都没用的
对你来说 你高层次的人要看到别人书本上学不到的东西 看到别人看不到的东西
优秀变成卓越需要付出代价和时间 要知识继续来重塑自己
[4,3] web4
发现这个%什么的 是JavaScript里面一个函数 escape() 和unescape() 用于加密和解密....
站长工具在线解密就可以了...
http://tool.chinaz.com/Tools/escape.aspx
然后......
key一定是带好了{}的格式吧.... !! 找到之后 提交到原来的网页上去 submit 出来flag 再交回bugku里面去...
[5,1]输入密码查看flag
burp爆破... 现在开始熟练一些了..
发到Intruder里面就是爆破啦啦啦.. 而不像repeater里面要改掉包
然后发现不对.... 要选对weizhi , pwd 稍微手动设置一下就好了
然后再抓 length不同的意思就是返回的值不同因为密码总不和以前的返回一样了 所以拿个不一样就又是密码了...
选项里面
[5,2]
[点击一百万次]
还好吧 ... js学一点,然后火狐hackbar直接发送一个clicks=1000000.....
get改成post(?)
但是 直接在源代码上面改了没用
emmmm 改了之后 改成99999/100000 再点一下就没了... 恢复到4/....
所以还是下面.............
当满足条件后,会执行post clicks=1000000
所以我们直接用hackbar来post
这个js代码不错哦 听炫酷的/// 一点击就会变起来
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 >= 10){ var form = $('<form action="" method="post">' + '<input type="text" name="clicks" value="' + clicks + '" hidden/>' + '</form>'); $('body').append(form); form.submit(); } }); });
[5,3]备份是个好习惯
[6,2] 速度要快
https://base64.supfree.net/ 随便找了 一个加密解密的东西
/////.... 要脚本啊..... 算了算了...
[6,3]cookies欺骗
查看源代码的时候上面的url竟然还有花招:
这个东西是base64 解密一下
随便找个地方解密就行...发现是keys.txt
哇,..... 然后就转换 最开始换成index.php的base64编码 放到后面
源代码有提示说line=xxx 开始判断line=从1开始爬... (其实可以使用python好了这里略去)
接下来是看不懂的php代码.....(补php T.T)
真是鸡贼.....【中间会有空格】 每空一行 一行代码
【所以 最好是爬下来 看地址 https://blog.csdn.net/qq_26090065/article/details/81588595 】
哇。。。。 还是要自己看php代码最厉害 。。。 我搞了半天
具体步骤如下:
把源代码网址里面的keys.txt改成keys.txt(趴下来的代码里写的)
然后hackbar发包改东西
然后查看源代码就可以了......
注意留意网页上的一些提示 比如这个页面除了源代码之外还有url
不行burp抓包里面也有很多东西的
稍微总结一下套路
【一般啊似乎可以是用burp 抓包 (本地)然后改包 改掉之后继续xxx】这个相当于是火狐浏览器的hackbar(可以发post,可以改cookie)
最后写成这个样子。。改了半天
把url load进去 再点那个按钮
[6.4]never give up
发现注释掉的有一个1p.html 访问
发现%,,的一堆先escape解码 然后base64解码
然后一堆看不懂的php代码...但是吧 其实中间有个东西 f4l2a3g.txt 试验一下果然可以诶....
然后就好了 难得-.-
================
该开新的帖子了...
【留意网页上所有给的信息】 充分挖掘..... 充分挖掘..... 充分挖掘....
【多尝试 多试验 多test 】
[前女友]
这个也是充分挖掘吧 首先链接
然后php漏洞:
if($v1 != $v2 && md5($v1) == md5($v2)){ if(!strcmp($v3, $flag)){
两个东西不相等 但是md5加密之后还相等
strcmp v3和flag相等才可以
这样....emmm... 我们人工达到不了就漏洞:当他是数组的时候就崩了 返回0
那么就构造a[0]=... a[1]=... a[2]=... 就好了....
[【向zj好好学习!!!!发现问题的能力 解决的能力】