C语言常见代码汇总判断一个年份是闰年12345678int isleapyear(int year){if ((year%4==0&&year%100!=0)||year%400==0){return 1;}else{return 0;}}
计算两个数的最大公约数(欧几里得算法)123456int gcd(int a,int b){if (b==0){return a;}return gcd(b,a%b);//递归计算最大公约数}
二进制数转换为十进制数123456789int binarytodecimal(int binary){while(binary>0){int reminder=binary%10;//获取最后一位数字decimal+=reminder*base;//将最后一位数字乘以对应权重加到结果中binary/=10;//去掉最后一位数字base*=2;//每次权重乘以2}return decimal;//返回对应的十 ...
c语言期末复习辅助知识点总复习1.程序结构是三种,顺序结构,循环结构,选择结构,
2.读取程序都需要在main()函数入口,然后从上往下读,直到主函数结束。
3.计算机中的数据是以二进制的形式保存的,存放的位置就是他的地址,地址是十六进制的
4.运算符的优先级:单目运算符>双目运算符>三目运算符,算术运算符>关系运算符>逻辑运算符>赋值运算符,逗号运算符的级别最低。
常见基础知识普遍1.标识符必须有字母数字下划线组成,并且第一个字符必须为字母或者数字。
2.不能用main define sacnf等作为标识符
3.c语言的八进制要以0开头,十六进制要以0x开头。
4.小数的合法写法:1.0可以写成1 0.1可以写成.1
5.e前e后必须有数,e后必为整数。
6.long int x 表示x是长类型 unsignde int x 标识x是无符号类型
表达式:1.算数表达式:
”/“两边都是整形,那么结果就是一个整数(四舍五入)
”/“如果有一边为小数,那么结果就是小数
”%“注意是取余数,两边的要求是整数。
2.赋值表达式
不能连续赋值
赋值的左边只能是一个 ...
File Inclusion 文件包含简介文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
CSRF(跨站请求伪造)简介CSRF(跨站请求伪造),全称为Cross-site request forgery,简单来说,是攻击者利用受害者尚未失效的身份认证信息,诱骗受害者点击恶意链接或含有攻击代码的页面,在受害者不知情的情况下以受害者的身份像服务器发起请求,从而实现非法攻击(改密)。
low源代码
1234567891011121314151617181920212223242526272829303132<?phpif( isset( $_GET[ 'Change' ] ) ) { // Get input//获取两个输入框的密码 $pass_new = $_GET[ 'password_new' ]; $pass_conf = $_GET[ 'password_conf' ]; // Do the passwords match?//查看两次输入的是否一致 if( $pass_new == $pass_conf ) { // They do!/ ...
简介:Command Injection(命令注入),就是指通过提交一些恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。
Low源代码
12345678910111213141516171819<?phpif( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // 确定操作系统并执行ping命令 if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); ...
Brute Force 暴力破解low1.手工注入 万能密码
admin ‘ or ‘1’=’1
2.直接bp爆破
welcome to dvwa
Medium这个跟low差不多 只是增加了mysqli_real_escape_string()函数 这个函数会过滤一些特殊的符号 抵御一部分sql注入
ps:mysqli_real_escape_string()函数的作用是对字符串中的特殊字符进行转义,以防止SQL注入攻击。它将字符串中的特殊字符(如单引号、双引号、反斜杠等)转义为它们的转义序列,从而使其在SQL语句中不被误解为SQL命令的一部分。这样可以确保用户输入的数据不会破坏SQL查询语句的结构,同时保护数据库的安全性。
High这一关的区别在于token
注:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这 ...
命令执行绕过escapeshellcmd函数绕过方法:1.执行.bat文件的时候,利用%1a,可以绕过过滤执行命令。
payload=
1post=../ %1a whoami
2.宽字节注入
空格过滤:1.${IFS}
payload1=
1cat${IFS}flag
payload2=
1cat${IFS}$9flag
payload3=
1cat$IFS$9flag
2.重定向符<>
payload1=
1cat<>flag
payload2=
1cat<flag
黑名单绕过1.拼接
payload=
1a=c;b=at;c=flag;$a$b $c
2.利用已存在的资源
从已有的文件或者环境变量中获得相应的字符。
3.base64编码
1`echo "Y2F0IGZsYWc="|base64 -d`
1echo "Y2F0IGZsYWc="|base64 -d|bash
4.单引号、双引号
payload1=
1c""at flag
payload2 ...
XSS攻击XSS的了解跨站脚本攻击(Cross-site scripting,XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。若受害者运行这些恶意代码,攻击者就可以突破网站的访问限制并冒充受害者。根据开放式 Web 应用安全项目(OWASP),XSS 在 2017 年被认为 7 种最常见的 Web 应用程序漏洞之一)。
如果 Web 应用程序没有部署足够的安全验证,那么,这些攻击很容易成功。浏览器无法探测到这些恶意脚本是不可信的,所以,这些脚本可以任意读取 cookie,session tokens,或者其他敏感的网站信息,或者让恶意脚本重写HTML内容。
在以下 2 种情况下,容易发生 XSS 攻击:
数据从一个不可靠的链接进入到一个 Web 应用程序。
没有过滤掉恶意代码的动态内容被发送给 Web 用户。
恶意内容一般包括 JavaScript,但是,有时候也会包括 HTML,FLASH 或是其他浏览器可执行的代码。XSS 攻击的形式千差万别,但他们通常都会:将 cookies 或其他隐私信息发送给攻击者,将受害者重定向到由攻击者控制的网页,或是经由 ...
http协议与https协议http简介1.HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议.
2.http协议是基于tcp/ip协议来传输数据(html文件、图片文件、查询结果等)
3.http的url是由http://起始,默认使用端口为80
http工作原理1.http协议工作于客户端-服务器架构上
2.浏览器作为http客户端通过url向http服务端即web服务器发送所有的请求。
3.web服务器接受到请求后,向客户端发送响应信息
4.http的默认端口号为80,但可以改为其他的端口
http协议的工作原理示意图
https简介https经由http进行通信,但是利用ssl/tls来加密数据包,https的开发的主要目的是提供对网站服务器的身份认证,保护交换资料的隐私和完整性。
https的url是由https://起始,默认端口为443
https的作用信任的情况:
与一个网站之间的 HTTPS 连线仅在这些情况下可被信任:
...
web基础知识php文件有以下几种备份的格式:1.git .svn .swp .bak .bash-history
类如
1index.php.git
robots协议robots协议规定了哪些东西可以抓取,哪些东西不能够抓取。robots.txt是一个文本文件也是一个协议。其可以在搜索引擎中访问网站中要查看的第一个文件。
cookiecookie是主机访问web服务器由服务器创建的,将信息储存在用户计算机上的文件,一般用户习惯使用cookies
cookie的使用:
1..判断用户是否已经登录网站
2.购物车网站用户跳转保存在其中的数据
3.等等等
php对于文件的读取1php://filter/read=convert.base64-encode/resource=index.php
组成解析1.php://filter/可以作为一个中间流来处理其他流,可以进行任意文件的读取。
2.read=convert.base64-encode/resource将数据转换为base64编码来读取数据
3.=index.php读取的文件
添加:读取上级目录文件
1php://filter/re ...
php注入概述rce概念:remote command/code execute,远程命令/代码执行。
php代码执行:在web中,php代码执行是指应用程序过滤不严,用户可通过http请求将代码注入到应用中执行
php代码注入与sql注入比较:
注入的思想类似,均是构造语句绕过服务器的过滤去执行。
区别在于sql注入是将语句注入到数据库中执行,而php代码执行是可以将代码注入到应用中,最终由服务器运行。
php代码注入的条件:
1.程序中含有可以执行php代码的函数或者语言结构
2.传入该函数或者语言结构的参数是可以由客户端控制的(可以直接修改或者造成影响)且应用过滤不严。
危害:
这样的漏洞如果没有特殊的过滤,相当于一个web后门的存在,攻击者可以执行漏洞继承web用户权限,执行任意代码。如果服务器没有正确配置或者web用户权限比较高的话,还可以读写靶机服务器任意文件的内容,甚至控制整个网站或者服务器。
相关的函数或语言结构1.eval()函数作用:该函数的作用是将字符串作为PHP代码执行。
例:
12345678<?phpif (isset($_GET['code ...
web
未读01.get&&post的区别:
1.传送方式的不同:get通过url进行传参,而post通过dao文传输。
2.传送长度的不同:get因为通过url栏进行传参,所以其长度是有限的,受限于url栏的长度。而post则没有限制。
3.get产生一个tcp数据包,而Post产生两个数据包。
get请求,浏览器会把header和data一起发送出去,服务器响应200
post请求,浏览器会先发送header,然后服务器响应100,之后再发送data,浏览器响应200。
4.get请求是幂等的,即多次请求同一个资源会得到相同的结果,而post请求是非幂等的,即多次请求之后对同一个资源会产生不同的结果。
5.get请求通常用来获取资源,而post请求通常用来提交数据发送表单,进行状态修改等操作。
6.get请求可以缓存,可以被存为书签,可以被浏览器的历史纪录查询,而post请求则都不能。
1url/?...=...
02url栏的组成
例子:http://thecat.top:80/cat/index.phpuserID=1&passwordID=123456#OK
1. ...