<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shanwei274的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shanwei274</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shanwei274]]></copyright><item><title><![CDATA[从头开始的爬虫学习以及复习(1)]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/118556216</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/118556216</guid><author>shanwei274</author><pubDate>Wed, 07 Jul 2021 21:51:05 +0800</pubDate><description><![CDATA[(1)复习阶段：py的基本语法以及基础知识（争取复习到正则表达式）
前言：7.7号假期开始,打开看到一般的爬虫书发现自己已经忘得差不多了，于是乎准备一遍写博客一遍记忆，写的东西就是每天我自己复习的以及学习的东西，谨记之
各个转换：

str():
int():
set():最大作用可以去除列表里面重复的元素，但是顺序会变得混乱不堪，在py3里面也是这样，刚刚尝试了，没有什么规律
list():
turple():
dict():

具体的博客：https://www.cnblogs.com/guangang]]></description><category></category></item><item><title><![CDATA[linux下命令拼接]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/116243665</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/116243665</guid><author>shanwei274</author><pubDate>Wed, 28 Apr 2021 21:26:48 +0800</pubDate><description><![CDATA[前言：我个five，一道特别简单的拼接题没有做出来，我吐了，不过也是涨知识了
直接切入正题了

linux命令是可以拼接的，也就是说在一个system("???")下我们的？？？可以拼接为多个命令同时执行。


a;b型拼接，不管a命令是否成功，b命令都会执行




a&amp;&amp;b型拼接，只有a命令执行成功才会执行b命令




a||b型拼接，不管a是否成功，都执行b




相应的ctf题目，我记得一道是攻防世界进阶区的一道uaf题目，还有就是bjdctf2020的第五题router也是我个]]></description><category></category></item><item><title><![CDATA[关于整数安全漏洞的一点点小记]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115919067</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115919067</guid><author>shanwei274</author><pubDate>Tue, 20 Apr 2021 21:29:11 +0800</pubDate><description><![CDATA[前言：关于整数安全漏洞的一点点小小的整理。
我自己随便写了，写到那里就是那里吧，东西也是写给我自己看的。
1.为什么会产生整数安全漏洞
整数安全的三种类型：

溢出：有符号数才会产生溢出，当两正和两符相加的时候，会有可能导致溢出，溢出的数据会覆盖掉符号位，从而是两个很大的正数相加变成负数，两个很大的负数相变成正数，溢出标志位of可以检测是否有溢出产生。另外溢出分为上溢出和下溢出。
回绕：回绕是对于无符号整数的，例如对于一个unsigned char(unsigned int_8)的数据，当你赋值给他256的]]></description><category></category></item><item><title><![CDATA[Stack2 攻防世界题目分析]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115821681</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115821681</guid><author>shanwei274</author><pubDate>Sun, 18 Apr 2021 11:42:36 +0800</pubDate><description><![CDATA[—XCTF 4th-QCTF-2018
前言，怎么说呢，这题目还是把我折磨的可以的，我一开始是没有看到后面的直接狙击的，只能说呢。
我的不经意间的粗心，破坏了你许多的温柔
1.气的我直接检查保护：

32位程序，开启了canary保护。
2.ida查看：


首先放的第一幅图片呢，是我一开始以为可以溢出的，也可以看见我旁边标注了一个maybeoverflow。

但是是不可以的，因为首先由于这里的 i 最大上限100，可能有的人头铁就要说了，这里v7可以慢慢溢出去修改i，（和我一样）
可是这里v13的存储位]]></description><category></category></item><item><title><![CDATA[elf文件--基于《ctf竞赛权威指南pwn篇》]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115733216</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115733216</guid><author>shanwei274</author><pubDate>Thu, 15 Apr 2021 22:16:03 +0800</pubDate><description><![CDATA[1.ELF概念：
ELF（Executable and Linkable Format），即“可执行可链接格式”，最初由UNIX系统实验室作为应用程序二进制接口（Application Binary Interface – ABI）的一部分而制定和发布，是COFF（Common file format）格式的变种。Linux系统上所运行的就是ELF格式的文件，相关定义在“/usr/include/elf.h”文件里。

它和在Windows下pe文件是相对的。


可以看到ELF文件非常的多，我没有细细的看]]></description><category></category></item><item><title><![CDATA[time_formatter攻防世界学习]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115609364</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115609364</guid><author>shanwei274</author><pubDate>Mon, 12 Apr 2021 00:23:02 +0800</pubDate><description><![CDATA[time_formatter
前言：这题说实话分析量蛮大的，首先是程序内壁比较绕，而且调用了之前许多没有见到的函数—如snprintf_che，以及strsup(好像打错了),getegid()，并且对于一般的题目考察堆的方向是比较少的。
还是学了一些东西吧。
废话不多说，开始吧：
1.查看保护

保护极高了已经！！！就很恐惧！！！
2.运行收集信息

好家伙上来就报菜名嗷，更加恐惧了，不过有个提示嗷，一般报菜名的题目都是和堆有关的，至少我见的不多几道是这样。
3.ida查看

这里解释一些课外东西：
1.]]></description><category></category></item><item><title><![CDATA[进阶区forgotg攻防世界]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115603984</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115603984</guid><author>shanwei274</author><pubDate>Sun, 11 Apr 2021 19:04:53 +0800</pubDate><description><![CDATA[攻防世界进阶区–forgot
前言，这题中看不中用啊宝友！！！
1.查看保护

第一反应就是蛮简单的，32位.
2.获取信息（先运行程序看看）

装的可以，蛮多的东西。
但是就是中看不中用
3.ida
进去看看

里面有两个输入，第一个我本来以为能溢出覆盖掉v14的数值，然后在最后的这句

用函数指针（还是指针函数来着我忘了），去调用这道题给出来的system，结果我试了试发现覆盖不到，就很气。
平日见到的scanf(%s)覆盖是不多的，所以没有太想到这里溢出点是第二个向v2里面传输数据。
使用cyclic]]></description><category></category></item><item><title><![CDATA[dice_game攻防世界进阶区]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115585916</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115585916</guid><author>shanwei274</author><pubDate>Sat, 10 Apr 2021 23:51:59 +0800</pubDate><description><![CDATA[dice_game
XCTF 4th-QCTF-2018
前言，不得不说，虽然是个简单题但是还是要记录一下，来让自己记住这些东西。
考察的知识点是：
1.cdll_loadlibrary加载对应库使得Python可以使用c的函数。
2.关于srand函数中种子的介绍。
3.一些平时没有见过的杂项
保证我写的很详细，因为我也是个菜鸡
----第一步查看保护喽

第一眼就很恐怖嗷，居然就只有canary没有开，其他的全开，got表也不能修改，我就很痛苦嗷
----第二步ida看看

main函数这里要说的呢
1]]></description><category></category></item><item><title><![CDATA[pwn200，一道不完全考察ret2libc的小小pwn题]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115529108</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115529108</guid><author>shanwei274</author><pubDate>Thu, 08 Apr 2021 20:05:05 +0800</pubDate><description><![CDATA[pwn200
—XDCTF-2015
每日一pwn，今天又做了一个pwn，那个pwn呢？？？攻防世界的进阶区里的一道小pwn题，虽然这个题考察的知识不多，rop链也比较好构建，但是还是让我又学到了一些东西，因为害怕忘记，写个博客记录记录。
1.获取pwn题
啪的一下就下载好了。
2.查看保护
拿到题我不做，哎，我干什么呢，我先查看保护！

裸奔题，开的东西不多，所以这里就看我们发挥了
3.ida看看

首先可以很明显的看到，给的7个变量，在栈中是连续排列的，一开始我还不知道给这里的七个数赋值到底有什么用，我]]></description><category></category></item><item><title><![CDATA[welpwnctf题目]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/115471819</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/115471819</guid><author>shanwei274</author><pubDate>Tue, 06 Apr 2021 22:18:17 +0800</pubDate><description><![CDATA[记录一道自己做的ctf题目：welpwn
–RCTF-2015
1.老生常谈checksec查看：

可以看到只开了nx保护，下面我们进入ida下面看看。

发现是一个想rbp-400，rsp+0h的地方read进入恰好0x400的数据，然后调用了echo函数，我们进入echo看看。

发现了一个简化版的strcpy函数，第一反应溢出溢出！但是这里由于在复制过程中遇到’0x00‘会被截断，所以64位下我们打包的p64(pop_rdi)+p64(binsh_addr)+p64(system)可能复制不到一半就]]></description><category></category></item><item><title><![CDATA[printf函数最最最最细的详解]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/110740253</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/110740253</guid><author>shanwei274</author><pubDate>Sun, 06 Dec 2020 19:32:41 +0800</pubDate><description><![CDATA[目录：

1. 关于printf格式化输出
2. printf的一般形式
3. 转换说明
 4. 格式化输出的意义
5. 转换说明修饰符
6. 修饰符中的标记
7. printf的返回值
8. 打印较长字符串的技巧
一. 关于printf格式化输出
printf和scanf被称为输入和输出函数，或者简称为I/O函数，之所以被称为格式化是因为printf可以通过格式字符串以及参数列表来控制计算机中的数据按照一定的要求来输出。printf中的f是format （格式化）的意思。
二.printf的形式 

关于]]></description><category></category></item><item><title><![CDATA[关于对C语言中数组名取地址加减等操作的一点探究]]></title><link>https://blog.youkuaiyun.com/shanwei274/article/details/110404685</link><guid>https://blog.youkuaiyun.com/shanwei274/article/details/110404685</guid><author>shanwei274</author><pubDate>Mon, 30 Nov 2020 21:19:48 +0800</pubDate><description><![CDATA[对于数组名取地址强制转换的操作
偶然在晚上学了C语言指针后网页闲逛找题时，被一个数组名取地址搞糊涂了，在自己试验加探索后我稍微悟了一点东西。
代码如下：
#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
int main(void)
{
	int a[5] = { 1,2,3,4,5};
	int* ptr = (int *)(&amp;a + 1);
	printf("%d,%d", *(a + 1), *(ptr - 1));
	return 0;
}

]]></description><category></category></item></channel></rss>